CSS定位属性

  • top、bottom、left、right

定义了定位元素上外边距边界与其包含块下边界之间的偏移。
定义了定位元素下外边距边界与其包含块下边界之间的偏移。
定义了定位元素左外边距边界与其包含块左边界之间的偏移。
定义了定位元素右外边距边界与其包含块下边界之间的偏移。

1
2
3
4
auto    默认值。通过浏览器计算底部的位置。
% 设置以包含元素的百分比计的底边位置。可使用负值。
length 使用 px、cm 等单位设置元素的底边位置。可使用负值。
inherit 规定应该从父元素继承 bottom 属性的值。
  • clip

剪辑一个绝对定位的元素。

1
2
3
shape     设置元素的形状。唯一合法的形状值是:rect (top, right, bottom, left)
auto 默认值。不应用任何剪裁。
inherit 规定应该从父元素继承 clip 属性的值。
  • cursor

显示光标移动到指定的类型。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
url       需使用的自定义光标的 URL。注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。
default 默认光标(通常是一个箭头)
auto 默认。浏览器设置的光标。
crosshair 光标呈现为十字线。
pointer 光标呈现为指示链接的指针(一只手)
move 此光标指示某对象可被移动。
text 此光标指示文本。
wait 此光标指示程序正忙(通常是一只表或沙漏)。
help 此光标指示可用的帮助(通常是一个问号或一个气球)。
e-resize 此光标指示矩形框的边缘可被向右(东)移动。
ne-resize 此光标指示矩形框的边缘可被向上及向右移动(北/东)。
nw-resize 此光标指示矩形框的边缘可被向上及向左移动(北/西)。
n-resize 此光标指示矩形框的边缘可被向上(北)移动。
se-resize 此光标指示矩形框的边缘可被向下及向右移动(南/东)。
sw-resize 此光标指示矩形框的边缘可被向下及向左移动(南/西)。
s-resize 此光标指示矩形框的边缘可被向下移动(北/西)。
w-resize 此光标指示矩形框的边缘可被向左移动(西)。
  • overflow

设置当元素的内容溢出其区域时发生的事情。

1
2
3
4
5
visible    默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值
  • overflow-x、overflow-y

指定如何处理右边/左边边缘的内容溢出元素的内容区域。
指定如何处理顶部/底部边缘的内容溢出元素的内容区域。

1
2
3
4
5
6
visible     不裁剪内容,可能会显示在内容框之外。
hidden 裁剪内容 - 不提供滚动机制。
scroll 裁剪内容 - 提供滚动机制。
auto 如果溢出框,则应该提供滚动机制。
no-display 如果内容不适合内容框,则删除整个框。
no-content 如果内容不适合内容框,则隐藏整个内容

CSS-Float(浮动)

1
2
3
4
left      元素向左浮动。
right 元素向右浮动。
none 默认值。元素不浮动,并会显示在其在文本中出现的位置。
inherit 规定应该从父元素继承 float 属性的值。
  • 清除浮动,使用clear

元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用clear属性。
clear属性指定元素两侧不能出现浮动元素。

CSS-组合选择符

  • 后代选择器

后代选择器用于选取某元素的后代元素。

1
2
3
4
以下实例选取所有<p>元素插入到<div>元素中:
div p{
background-color:yellow;
}
  • 子元素选择器

与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素子元素的元素。

1
2
3
4
以下实例选择了<div>元素中所有直接子元素<p>:
div>p{
background-color:yellow;
}
  • 相邻兄弟选择器

相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector)。

1
2
3
4
以下实例选取了所有位于<div>元素后的第一个<p>元素:
div+p{
background-color:yellow;
}
  • 后续兄弟选择器

后续兄弟选择器选取所有指定元素之后的相邻兄弟元素。

1
2
3
4
以下实例选取了所有<div>元素之后的所有相邻兄弟元素<p>:
div~p{
background-color:yellow;
}

CSS伪类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
:checked              input:checked           选择所有选中的表单元素
:disabled input:disabled 选择所有禁用的表单元素
:empty p:empty 选择所有没有子元素的p元素
:enabled input:enabled 选择所有启用的表单元素
:first-of-type p:first-of-type 选择的每个p元素是其父元素的第一个p元素
:in-range input:in-range 选择元素指定范围内的值
:invalid input:invalid 选择所有无效的元素
:last-child p:last-child 选择所有p元素的最后一个子元素
:last-of-type p:last-of-type 选择每个p元素是其母元素的最后一个p元素
:not(selector) :not(p) 选择所有p以外的元素
:nth-child(n) p:nth-child(2) 选择所有p元素的父元素的第二个子元素
:nth-last-child(n) p:nth-last-child(2) 选择所有p元素倒数的第二个子元素
:nth-last-of-type(n) p:nth-last-of-type(2) 选择所有p元素倒数的第二个为p的子元素
:nth-of-type(n) p:nth-of-type(2) 选择所有p元素第二个为p的子元素
:only-of-type p:only-of-type 选择所有仅有一个子元素为p的元素
:only-child p:only-child 选择所有仅有一个子元素的p元素
:optional input:optional 选择没有"required"的元素属性
:out-of-range input:out-of-range 选择指定范围以外的值的元素属性
:read-only input:read-only 选择只读属性的元素属性
:read-write input:read-write 选择没有只读属性的元素属性
:required input:required 选择有"required"属性指定的元素属性
:root root 选择文档的根元素
:target #news:target 选择当前活动#news元素(点击URL包含锚的名字)
:valid input:valid 选择所有有效值的属性
:link a:link 选择所有未访问链接
:visited a:visited 选择所有访问过的链接
:active a:active 选择正在活动链接
:hover a:hover 把鼠标放在链接上的状态
:focus input:focus 选择元素输入后具有焦点
:first-letter p:first-letter 选择每个<p>元素的第一个字母
:first-line p:first-line 选择每个<p>元素的第一行
:first-child p:first-child 选择器匹配属于任意元素的第一个子元素的<p>元素
:before p:before 在每个<p>元素之前插入内容
:after p:after 在每个<p>元素之后插入内容
:lang(language) p:lang(it) 为<p>元素的lang属性选择一个开始值

CSS表单

  • 输入框(input) 聚焦

默认情况下,一些浏览器在输入框获取焦点时(点击输入框)会有一个蓝色轮廓。我们可以设置input样式为outline:none;来忽略该效果。

1
2
3
4
使用:focus选择器可以设置输入框在获取焦点时的样式:
input[type=text]:focus {
background-color: lightblue;
}
  • 输入框(input) 图标

如果你想在输入框中添加图标,可以使用background-image属性和用于定位的background-position属性。注意设置图标的左边距,让图标有一定的空间:

1
2
3
4
5
6
7
input[type=text] {
background-color: white;
background-image: url('searchicon.png');
background-position: 10px 10px;
background-repeat: no-repeat;
padding-left: 40px;
}
  • 带动画的搜索框

以下实例使用了CSS transition属性,该属性设置了输入框在获取焦点时会向右延展。

1
2
3
4
5
6
7
input[type=text] {
-webkit-transition: width 0.4s ease-in-out;
transition: width 0.4s ease-in-out;
}
input[type=text]:focus {
width: 100%;
}
  • 文本框(textarea)样式

使用resize属性来禁用文本框可以重置大小的功能(一般拖动右下角可以重置大小)。

1
2
3
4
5
6
7
8
9
10
textarea {
width: 100%;
height: 150px;
padding: 12px 20px;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
background-color: #f8f8f8;
resize: none;
}
  • 下拉菜单(select)样式
1
2
3
4
5
6
7
select {
width: 100%;
padding: 16px 20px;
border: none;
border-radius: 4px;
background-color: #f1f1f1;
}
  • 按钮样式
1
2
3
4
5
6
7
8
9
10
input[type=button], input[type=submit], input[type=reset] {
background-color: #4CAF50;
border: none;
color: white;
padding: 16px 32px;
text-decoration: none;
margin: 4px 2px;
cursor: pointer;
}
/* 提示: 使用 width: 100% 设置全宽按钮 */