CSS 学习总结

本文总结了CSS的学习,从选择器到盒子模型,再到CSS3的2D/3D转换和动画。内容包括标签选择器、类选择器、ID选择器、背景、字体、链接样式、表格、轮廓、定位、浮动、盒子模型详解以及CSS3的过渡、动画和用户界面等。


CSS的基本语法结构

// h1 ——为选择器  大括号中编辑属性和值
// 设置字体颜色为红色,字体大小14px
h1 {
	color : red;
	font-size: 14px;
}

CSS 选择器

1. 标签选择器
如果设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 p、h1、em、a

// 选择器以标签名 命名,说明样式给那个标签加
html {color: black;}
p {color: gray;}
h2 {color: silver;}
h2 , p {font-size: 20px}

2. 类选择器
在HTML文档中的指定标签上 加class属性,给该标签加属性时就可以用 . class名来当选择器

// css样式书写
.size { font-size: 20px }
// html文档加class属性
<p class="size">类选择器</p>

3. ID 选择器
不同于类选择器,ID 选择器不能结合使用,ID 选择器会使用一次,而且仅一次

// css样式书写
#size { font-size: 20px }
// html文档加class属性
<p id="size">类选择器</p>

4. 后代选择器
后代选择器可以选择作为某元素后代的元素

// css 代码
h1 em {color:red;}
// 把h1 标签下的 em标签颜色改为红色
<h1>This is a <em>important</em> heading</h1>
<p>This is a <em>important</em> paragraph.</p>

5. 子元素选择器
子元素选择器只能选择作为某元素子元素的元素

// css 代码
h1 > strong {color:red;}
// 规则会把第一个 h1 下面的两个 strong 元素变为红色,但是第二个 h1 中的 strong 不受影响
<h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
<h1>This is <em>really <strong>very</strong></em> important.</h1>

6. CSS 相邻兄弟选择器
相邻兄弟选择器 可选择紧接在另一元素后的元素,且二者有相同父元素。

// css 代码
h1 + p{color: red}
// 样式选中的是 与h1 同级的 第一个p元素
<body>
<h1>This is a heading.</h1>
<p>This is paragraph.</p>
<p>This is paragraph.</p>
</body>

7. 伪类
CSS 伪类用于向某些选择器添加特殊的效果
锚伪类:

伪类链接的不同状态
a:link { }未被访问状态
a:visited { }已访问的链接
a:hover { }鼠标移动到链接上
a:active { }选定的链接

8. 属性选择器
争对某元素的固定属性的标签

结构描述
E[att]选择具有att属性的E元素
E[att=“val”]选择具有att属性且属性值等于val的E元素
E[att^=“val”]匹配具有att属性,且值以val开头的E元素
E[att$=“val”]匹配具有att属性,且值以val结尾的E元素
E[att*=“val”]匹配具有att属性,且值中含有val的E元素

9. 结构伪类选择器
选择父类元素中的某一个值

样式结构描述
E:first-child匹配父元素中的第一个子元素E
E:last-child匹配父元素中最后一个E元素
E:nth-child(n)匹配父元素中的第n个子元素E 其中n可以为even偶数
E:nth-last-child(n)定义某一个父元素的最后一个子元素开始计算
E:first-of-type指定类型E的第一个
E:last-of-type指定类型E的最后一个
E:nth-of-type(n)指定类型E的第n个
E :nth-last-of-type(){}定义某一个父元素中某一种类型的最后一个元素

10. 伪元素

属性描述
:first-letter向文本的第一个字母添加特殊样式。
:first-line向文本的首行添加特殊样式。
:before在元素之前添加内容。
:after在元素之后添加内容。

CSS样式

争对HTML文档添加特殊效果的语法

CSS 背景

对页面背景的一波操作

操作代码示例值的介绍
背景颜色background-color:red;默认值:transparent透明色
背景透明background:rgba(0,0,0,0.3)最后一个参数是透明度值 0-1 可直接写.3
背景图片background-image:url()括号中的图片地址不加引号
背景平铺background-repeat:repeat平铺no-repeat(不平铺) repeat-x / y(x / y 轴平铺)
背景位置background-position:0 0可写百分数 方位词 值
背景附着background-attachment:sroll / fixedscroll:背景随内容一起滚动 fixed:背景图像固定
背景简写background:背景颜色 背景图片地址 背景平铺背景滚动 背景位置;
规定背景在盒子中的位置background-origin:content-box、padding-box 或 border-box
规定背景的绘制区域background-clipcontent-box、padding-box 或 border-box
CSS 字体

通过文本属性,您可以改变文本的颜色、字符间距,对齐文本,装饰文本,对文本进行缩进,等等

属性描述
text-indent缩进文本负值 百分比
text-align水平对齐left、right 和 center justify
word-spacing字间隔默认值 0 px 、 em
letter-spacing字母间隔默认值 normal ,px ,em
text-transform字符转换uppercase(全大写), lowercase(全小写) , capitalize(首大写)
text-decoration文本划线none, overline, line-through, underline
direction文本方向(行内元素有局限)ltr(左) 和 rtl (右)
text-shadow文本阴影text-shadow: 5px 5px 5px #FF0000;
word-wrap文本自动换行break-word
white-space处理内容空白符以下列举:
pre-line合并空白符允许自动换行
normal合并空白符允许自动换行
nowrap合并空白符不允许自动换行
pre保留空白符不允许自动换行
pre-wrap保留空白符允许自动换行

CSS 字体属性定义文本的字体系列、大小、加粗、风格(如斜体)和变形(如小型大写字母)

属性描述
font-family指定文字的字体样式
font-style规定斜体文本normal - 文本正常显示 , italic - 文本斜体显示
font-variant设定小型大写字母small-caps
font-weight设置文本的粗细bold ,500,900
font-size设置文本的大小像素
CSS链接

我们能够以链接的不同状态为链接设置样式

属性描述
a:link { }未被访问的链接的样式
a:visited { }已被访问的链接的样式
a:hover { }鼠标指针移动到链接上的样式
a:active { }正在被点击的链接的样式
CSS 列表

CSS 列表属性允许你放置、改变列表项标志,或者将图像作为列表项标志

属性描述
list-style-type:修改用于列表项的标志类型circle(圆形) square(方块)
有序的标志类型upper-roman(I II III) lower-alpha(a b c )
list-style-image列表项图像url(xxx.gif)
list-style-position列表标志位置inside(文本以内) ,outside(文本的左侧) inherit(继承父类该属性值)
list-style简写列表样式图像 / 样式 / 位置
CSS 表格

表格属性可以帮助您极大地改善表格的外观

属性描述
border: 1px solid blue表格边框dashed(虚线) dotted(点线)
border-collapse:表格边框折叠为单一边框collapse
text-align:表格水平对齐left / right / center
vertical-align:设置垂直对齐方式顶部对齐、底部对齐或居中对齐
padding表格内边距px
CSS 轮廓

绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用
规定了 !DOCTYPE,则IE8支持该属性

属性描述
outline-color设置轮廓的颜色#000000
outline-style设置轮廓的样式solid,dashed,dotted……
outline-width设置轮廓的宽度px
outline所有的轮廓属性颜色 样式 宽度

CSS盒子模型

概述

CSS 规定了元素框处理元素内容、内边距、边框 和 外边距 的方式
提示:内边距、边框和外边距可以应用于一个元素的所有边,也可以应用于单独的边。
提示:外边距可以是负值,而且在很多情况下都要使用负值的外边距。
兼容性:IE5.X和IE6 的浏览器的 width 属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。

边框

边框有三部分组成 (边框颜色),(边框宽度),(边框样式)

属性描述
border-color边框颜色
border-width边框宽度
border-style边框样式solid dotted dashed
border-radius圆角边框lenght
box-shadow边框阴影box-shadow: 0 15px 30px rgba(0,0,0,.3)
border-image边框设置为图片url(border.png)

还可以单独指定边框

// 要设置上边框的颜色 / 下边框的样式 根据需求设置
border-top-color: red;
border-bottom-style: dashed;
内外边距

内边距
边框和内容区之间的区域是内边距 padding

属性描述
padding-top设置元素的上内边距
padding-right设置元素的右内边距
padding-bottom设置元素的下内边距
padding-left设置元素的左内边距
padding简写属性

外边距
围绕在元素边框的空白区域是外边距, margin这个属性接受任何长度单位、百分数值甚至负值。

属性描述
margin-top上外边距
margin-right右外边距
margin-bottom下外边距
margin-left左外边距
margin简写属性

盒子水平居中的方法
方法一:margin-left:auto; margin-right:auto;
方法二:margin:auto;
方法三:margin:0 auto;

盒子与盒子坍塌解决方案

两个盒子相邻或嵌套外边框合并

解决方法代码实现
1.可以给父元素定义上边框 transparent透明border-top:1px solid transparent;
2.可以给父级指定一个上padding值padding-top:1px;
3.可以给父元素添加overflow:hiddenoverflow:hidden;

盒子定位

CSS 定位属性允许你对元素进行定位
CSS 有三种基本的定位机制:普通流、浮动和绝对定位

定位

position : 属性的使用:

属性值描述
static静态定位
relative相对定位
absolute绝对定位
fixed固定定位

当一个父级下的子级有多个设置了绝对定位,设置堆叠顺序
z-index :属性值正整数,负整数,0,没有单位

浮动

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止
float:none / left / right
清除浮动

  1. 额外标签法:
    在设置浮动的元素后加一个标签 设置一个 clear:both
    < div style=“clear: both”>< /div>
  2. 父级添加overflow属性方法
    overflow: hidden || auto || scroll都可以实现
  3. 使用after伪元素清除浮动
.clearfix:after {
    content: "";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
// IE6,7专有
.clearfix {
    *zoom: 1;
}

双伪元素清除浮动

.clearfix:before,
.clearfix:after {
    content: "";
    display: table;
}
.clearfix:after {
    clear: both;
}
.clearfix {
    *zoom: 1;
}

问题

  1. 元素的显示与隐藏
属性描述
display: none隐藏元素位置不保留
display: block除了转换为块级元素之外,同时还有显示元素的意思
visibility: visible对象可视
visibility: hidden对象隐藏位置保留
  1. 文字在边框溢出问题
属性描述
overflow: visible不剪切内容也不添加滚动条
overflow: hidden不显示超过对象尺寸的内容,超过的部分隐藏掉
overflow: scroll不管超过内容否,总是显示滚动条
overflow: auto超过自动显示滚动条,不超出不显示滚动条
white-space: normal当文字显示不开的时候,自动换行
white-space: nowrap强制在同一行显示文本,直到文本遇到br才换行
overflow: hidden超出的部分隐藏
text-overflow: ellipsis文字用省略号替代超出的文本
  1. 鼠标样式
属性描述
cursor:default默认箭头
cursor:pointer小手
cursor:move移动
cursor:text文本
cursor:not-allowed禁止
resize: none防止用户拖拽文本域
outline: none取消轮廓线
  1. 去除图片底部空白缝隙
属性描述
vertical-align: middle / top / bottom让图片不要基线对齐
display: block:转换为块级元素
  1. 如何用css代码实现一个三角形图案
  • 宽度和高度为 0
  • 三角形的角的方位的反方位设置边框颜色,其他边为 transparent透明色
  • 为考虑兼容性问题 加上 font-size:0; lind-height:0
// 三角形代码实现
div{
   width: 0;
   height: 0;
   border-style: solid;
   border-width: 10px;
   border-color: transparent transparent transparent red;
   font-size:0;
   line-height: 0;
}

CSS3

CSS3 是最新的 CSS 标准。

2D 转换

一个元素平面的移动 ,旋转,缩放

属性代码示例描述
transform :transform:translate(100px,100px);移动
transform :transform:rotate(度数)旋转
transformtransform-origin:x y;转换中心点
transform :transform:scale(x,y);缩放

综合写法:transform : 移动 旋转 缩放

3D 转换

与2D相比思维上多了Z轴

属性代码示例描述
transformtransform: translae3d(_ _ _)3D位移
transformtransform: rotateX(45deg)3D旋转
transformtransform-style: preserve-3d3D呈现
perspective数值透视

透视越大成像越小,透视越小成像越大
透视写在被观察元素的父盒子上面

动画

可以在许多网页中取代动画图片,Flash,JavaScript

  1. 定义动画
// An highlighted block
@keyframes 名{    
	内容为0%{      }100%{     }
	关键字 from  or   等价于百分百
}
  1. 调用动画
// 在元素上调用动画
animation-name: 名
animation-duration: _s
属性描述
animation-name自定义规定 @keyframes 动画的名称
animation-duration_s规定动画完成一个周期所花费的秒或毫秒。默认是 0
animation-timing-function规定动画的速度曲线。默认是 “ease”。
steps数值分几步来完成我们的动画
animation-delay_s规定动画何时开始。默认是 0。
animation-iteration-count数值规定动画被播放的次数。默认是 1
animation-directionalernate 逆播放规定动画是否在下一周期逆向地播放。默认是 "normal
animation-play-state运行 running, pause(暂停)规定动画是否正在运行或暂停。默认是 “running”
animation-fill-mode起始backwards,保持forwards规定动画结束后状态

简写:animation :动画名称 持续时间 运动曲线 何时开始 播放次数 是否反反向 动画起始或者结束的状态

过度

元素从一种样式变换为另一种样式时为元素添加效果

属性描述
transition-property:规定应用过渡的css属性的名称要过度的属性
transition-duration:定义过渡效果花费的时间,默认是0花费的时间
transtion-timing-functionlinear(匀速),ease(逐渐慢下来) ,ease-in(加速) / out /in-out运动曲线
transtion-delay规定过渡效果何时开始,默认0何时开始
浏览器私有前缀

浏览器私有前缀,是浏览器对于新CSS属性的一个提前支持
通过添加浏览器私有前缀方式来提前支持新属性

私有前缀代表浏览器
-moz-代表firefox浏览器
-ms-代表ie浏览器
-webkit-代表Safari,chrome
-o-代表opera
用户界面

怎样在页面中使用特殊的字体样式
IE8之前版本浏览器

  1. 把需要的字体从网上下载下来
  2. 在css代码中用 @font-face{ }
  3. 在代码块中用font-family: 命名
  4. 在代码块中用src:url(‘ 字体路径 ’)
  5. 使用font-family:命名 来引入字体来用
<style> 
@font-face
{
font-family: myFirstFont;
src: url('字体路径'),
     url('字体路径'); 
}
div
{
font-family:myFirstFont;
}
</style>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值