个人自学前端6-CSS1
CSS
层叠样式表,用来表现HTML等文件样式的计算机语言。
CSS版本
- CSS1: 1996年12月17日成为W3C推荐标准,该版本中提供了有关文字、颜色、位置和文本属性等基本信息。
- CSS2: 1998年5月,样式单得到了更多的充实。
- CSS3: 1999年开始制订,2001年5月23日W3C完成了CSS3的工作草案。各浏览器厂商对CSS3的支持也在不断的完善中。
HTML中使用CSS有三种方式:
- 标签中使用
style属性。行间样式也叫作内联样式
<div style='width: 100px; height: 100px; background: red;'></div>
- 使用
<style>标签。通常我们把<style>标签放在<head>标签中,也叫作内部样式。
<!-- 02 内部样式 -->
<style>
.box{
width: 200px;
height: 200px;
background: blue;
}
</style>
- 外部
.css文件,使用<link rel="stylesheet" href="">引入到HTML文档中。推荐使用
<!-- 03 外部样式-->
<link rel="stylesheet" href="./css/01.css">
CSS 三大特性
- 继承性:给父元素设置的属性,子孙元素也可以使用。
- 层叠性:层叠性只有在多个选择器中选择同一个标签,然后又设置了相同的属性,才会发生层叠。
- 优先级:当多个选择器选择同一个标签,并且给同一个标签设置属性时,如何层叠由优先级来决定.
导入外部样式表到当前
各引入方式优先级: 内联样式 > 内部样式 - 外部样式 > 浏览器默认样式
@import
@import url("global.css");
@import url(global.css);
@import "global.css";
CSS语法
为HTML标签设置一组样式也可以叫作设置CSS规则。CSS规则中必须包含选择器和一条及以上的声明。
- 在CSS中可以使用
/* */为样式添加注释。
CSS规则会有叠加的效果,优先级高的规则将覆盖优先级低的规则。同等优先级情况下后面的将覆盖前面的。
CSS选择器
要为HTML标签元素设置样式需要先选中该元素,使用css选择器可以选中HTML标签。
-
标签选择器(元素选择器)
E以HTML中元素名称作为选择符
h2{background:red;} p{background:red;} div{background:blue;} -
ID选择器
#以HTML标签中id属性的值作为选择符(唯一)。
#box1{color:red;} #box2{color:red;} -
类别选择器
.以HTML标签中class属性的值作为选择符(可匹配多个)。
.box1{color:green;} .box2{color:green;} -
属性选择器
[att]具有att属性的元素[att="val"]选择具有att属性且属性值等于val的E元素。[att~="val"]选择具有att属性且属性值为一用空格分隔的字词列表,其中一个等于val的元素。[att|="val"]选择具有att属性且属性值为以val开头并用连接符"-"分隔的字符串的E元素,如果属性值仅为val,也将被选择。
-
通配符
*选定所有HTML标签
复合选择器
复合选择器有两个及以上的选择器组合而成,也叫作组合选择器。
关系选择器
E F后代选择器:匹配那些由第一个元素作为祖先元素的所有第二个元素(后代元素) ,不需要相匹配元素之间要有严格的父子关系。E>F子元素选择器:匹配那些作为第一个元素的直接后代(子元素)的第二元素.E+F相邻兄弟选择器:当第二个元素紧跟在第一个元素之后,并且两个元素都是属于同一个父元素的子元素,则第二个元素将被选中。
选择器优先级:描述越具体优先级越高
!important 提升指定样式条目的应用优先权
选择器优先级

- !important
在属性后面写上这条样式,会覆盖掉页面上任何位置定义的元素的样式。 - 行内样式,在style属性里面写的样式。
- id选择器
- class选择器
- 标签选择器
- 通配符选择器*
- 浏览器的自定义属性和继承
单位取值
长度
px像素。绝对长度单位in英寸。绝对长度单位cm厘米。绝对长度单位mm毫米。绝对长度单位q1/4毫米。绝对长度单位pt点。绝对长度单位。pc派卡。绝对长度单位。相当于我国新四号铅字的尺寸
1in = 2.54cm = 25.4 mm = 101.6q = 72pt = 6pc = 96px 。绝对长度单位在使用时需要慎重。常用的绝对长度单位是
px因为在前端的视觉稿.psd 通常都是以像素为单位绘制的。
em相对于当前对象内文本的字体尺寸。 相对长度单位rem相对于根元素(即html元素)font-size计算值的倍数。相对长度单位- %用的多!!!可用于响应式布局。
颜色
Color Name用颜色关键字来指定颜色。如:black、white、red、green...HEX十六进制记法。如:#rrggbb或#rgbRGBrgb(R,G,B),三个参数,正整数值的取值范围为:0 - 255。百分数值的取值范围为:0.0% - 100.0%。RGBArgba (R,G,B,A) 在rgb基础之前增加了A 。A: Alpha透明度。取值0 - 1之间。
常用属性
继承性:CSS中部分为HTML标签设置属性样式给继承给子级标签。
背景
background设置标签的背景。简写属性- 标签可以使用颜色或图片作为背景
background: #ffffff url("/i/photo/tree.png") no-repeat fixed right top;
在使用简写属性时,属性值的顺序为:
1.background-color
2.background-image
3.background-repeat
4.background-attachment
5.background-position
在 CSS属性中有大量的 简写属性也叫作复合属性,这些简写属性可以将多条样式规则合并为一条,以提高书写效率,让编码更加简洁。
background-color设置标签的背景颜色。background-image设置标签的背景图像。background-repeat设置是否及如何重复背景图像。
| 可能的值 | 描述 |
|---|---|
| repeat | 默认。背景图像将在垂直方向和水平方向重复。 |
| repeat-x | 背景图像将在水平方向重复。 |
| repeat-y | 背景图像将在垂直方向重复。 |
| no-repeat | 背景图像将仅显示一次。 |
| inherit | 规定应该从父元素继承 background-repeat 属性的设置。 |
background-attachment设置背景图像是否固定或者随着页面的其余部分滚动。
| 可能的值 | 描述 |
|---|---|
| scroll | 默认值。背景图像会随着页面其余部分的滚动而移动。 |
| fixed | 当页面的其余部分滚动时,背景图像不会移动。 |
| inherit | 规定应该从父元素继承 background-attachment 属性的设置。 |
background-position设置背景图像的起始位置。
| 可能的值 | 描述 |
|---|---|
| top right bottom left center | 如果您仅规定了一个关键词,那么第二个值将是"center"。默认值:0% 0%。写两个。 |
| x% y% | 第一个值是水平位置,第二个值是垂直位置。左上角是 0% 0%。右下角是 100% 100%。如果您仅规定了一个值,另一个值将是 50%。 |
| xpos ypos | 第一个值是水平位置,第二个值是垂直位置。左上角是 0 0。单位是像素 (0px 0px) 或任何其他的 CSS 单位。如果您仅规定了一个值,另一个值将是50%。您可以混合使用 % 和 position 值。 |
background-clip属性规定背景的绘制区域。
| 值 | 描述 |
|---|---|
| border-box | 背景被裁剪到边框盒。 |
| padding-box | 背景被裁剪到内边距框。 |
| content-box | 背景被裁剪到内容框。 |
background-origin属性规定background-position属性相对于什么位置来定位。
| 值 | 描述 |
|---|---|
| border-box | 背景图像相对于边框盒来定位。 |
| padding-box | 背景图像相对于内边距框来定位。 |
| content-box | 背景图像相对于内容框来定位。 |
background-size属性规定背景图像的尺寸。
| 值 | 描述 |
|---|---|
| length | 设置背景图像的高度和宽度。第一个值设置宽度,第二个值设置高度。如果只设置一个值,则第二个值会被设置为 "auto"。 |
| percentage | 以父元素的百分比来设置背景图像的宽度和高度。第一个值设置宽度,第二个值设置高度。如果只设置一个值,则第二个值会被设置为 "auto"。 |
| cover | 把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。背景图像的某些部分也许无法显示在背景定位区域中。 |
| contain | 把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域。 |
边框
-
border定义元素边框的外观特性。简写属性- border-width
- border-style(必需)
- border-color
p {
border-left: 6px solid red;
background-color: lightgrey;
}
-
border-style属性指定要显示的边框类型。允许以下值:dotted- 定义点线边框dashed- 定义虚线边框solid- 定义实线边框double- 定义双边框groove- 定义 3D 坡口边框。效果取决于 border-color 值ridge- 定义 3D 脊线边框。效果取决于 border-color 值inset- 定义 3D inset 边框。效果取决于 border-color 值outset- 定义 3D outset 边框。效果取决于 border-color 值none- 定义无边框hidden- 定义隐藏边框
-
border-radius属性用于向元素添加圆角边框。
轮廓
outline :是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
outline:#00ff00 dotted thick;
文本
-
color指定颜色。- 常用取值:Color Name、HEX、RGB
-
font-size定义元素的字体大小 -
font-family定义元素文本的字体名称序列 -
font-weight定义元素文本字体的粗细- normal: 正常的字体。相当于数字值400
- bold: 粗体。相当于数字值700。
- bolder: 定义比继承值更重的值
- lighter: 定义比继承值更轻的值
- 用数字表示文本字体粗细。取值范围:100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
-
font简写属性。定义元素的文本特性。- 语法:
font:[ [font-style||font-variant||font-weight||font-stretch]?font-size[ /line-height]?font-family] | caption | icon | menu | message-box | small-caption | status-bar - 使用font属性参数必须按照如上的排列顺序,且font-size和font-family必须填写。每个参数仅允许有一个值。不建议用。
- 语法:
-
text-transform定义元素的文本如何转换大小写none: 无转换capitalize: 将每个单词的第一个字母转换成大写uppercase: 将每个单词转换成大写lowercase: 将每个单词转换成小写
-
white-space指定元素是否保留文本间的空格、换行;指定文本超过边界时是否换行。 -
text-align定义元素内容的水平对齐方式 -
text-indent定义块内文本内容的缩进 -
letter-spacing属性用于指定文本中字符之间的间距,用的少 -
word-spacing属性用于指定文本中单词之间的间距,用的少 -
vertical-align定义行内元素在行框内的垂直对齐方式 -
text-decoration定义元素文本装饰 -
line-height属性用于指定行之间的间距 -
text-shadow属性向文本设置阴影。- 语法:
text-shadow: h-shadow v-shadow blur color; - 水平阴影的位置,垂直阴影的位置,模糊的距离,阴影的颜色
- 例:
h1 {text-shadow:2px 2px 8px #FF0000;}
- 语法:
列表
list-style设置列表项目相关内容
表格
border-collapse设置或检索表格的行和单元格的边是否合并在一起
盒子模型
CSS盒模型有:内容(Content)、内边距(Padding)、边框(Border)、外边距(Margin)组成。

盒子的宽度: 内容+ 内边距 + 边框
为元素设置宽、高
width设置元素宽度min-width最小宽度max-width最大宽度height设置元素高度min-height最小高度max-height最大高度
内外边距
margin为元素设置上右下左的外边距 ,复合属性。- 四个参数:上、右、下、左
- 三个参数:上、左右、下
- 两个参数:上下、左右
- 一个参数:上右下左
margin参数取值:auto 根据父级容器自动计算位置。多用左右两侧边距计算。可以让元素居中显示。
/* box元素将在父元素中居中显示 */
.box{
width:100px;
margin:0 auto;
}
margin-top设置元素上外边距margin-bottom设置元素下外边距margin-right设置元素右外边距margin-left设置元素左外边距
padding为元素设置所有四个方向(上右下左)的内边距,复合属性
padding的值为四、三、二、一个时规则与margin一至。
padding-top设置元素上内边距padding-bottom设置元素下内边距padding-right设置元素右内边距padding-left设置元素左内边距
固定行宽度,超出文本显示为 ...
p{
border: 1px solid gray;
width: 100px;
/* 文本不换行 */
white-space: nowrap;
/* 超出文本隐藏 */
overflow: hidden;
/* 文本隐藏时显示 ... */
text-overflow: ellipsis;
}
多行显示,超出部分显示...
-webkit-line-clamp CSS 属性 可以把 块容器 中的内容限制为指定的行数.
p {
width: 100px;
height: 100px;
border: 1px solid gray;
display: -webkit-box;
-webkit-line-clamp:3; /*限制当前块级元素中的内容的行数*/
-webkit-box-orient: vertical;
}
外边距重叠
- 外边距重叠是指两个垂直相邻的块级元素,当上下两个边距相遇时,起外边距会产生重叠现象,且重叠后的外边距,等于其中较大者。(水平方向不会发生)
- 原因:当一个元素包含另一个元素时,假设没有padding或border把外边距分隔开,他们的上/下外边距就会发生合并。 父元素的第一个子元素的上边距margin-top如果碰不到有效的border或者padding.就会不断一层一层的找自己“领导”(父元素,祖先元素)的麻烦。只要给领导设置个有效的 border或者padding就可以有效的管制这个目无领导的margin防止它越级,假传圣旨,把自己的margin当领导的margin执行。
- 相邻元素可为父子元素或同胞元素。
- 折叠后的margin计算
- margin都是正值时取较大的margin值
- margin都是负值时取绝对值较大的,然后负向位移。
- margin有正有负,从负值中选绝对值最大的,从正值中选取绝对值最大的,然后相加
- 解决方案:
- 改为padding
- 对于父子元素,内层元素加
float:left或display:inline-block; - 外层父元素加透明边框
border:solid 1px transparent; - 内层元素绝对定位
position:absolute; - 设置为BFC布局
外边距穿透
- 父级元素没有边框才能穿透
- 穿透只有上下,左右没有穿透问题
- 解决方案:
- 加高度
本文来自博客园,作者:暗鸦08,转载请注明原文链接:https://www.cnblogs.com/DarkCrow/p/14925539.html

浙公网安备 33010602011771号