css知识点
主要加强行css的各种不够熟悉的知识点.(不断更新中)
行高
- 根据行高的概念,因为字体的上下边距是一样的,所以当把字体的行高设置为和该字体容器的高度相同时,字体会垂直居中。
记忆诀窍:LoVe,HAte必须严格按照这个顺序来写,否则伪类可能不起作用,link和visited伪类只能用于a标签,hover和active伪类可用于其他标签.
- demo:
<style> a { color: white; display: inline-block; width: 200px; height: 50px; text-align: center; /*根据行高的概念,因为字体的上下边距是一样的,所以当把字体的行高设置为和 该字体容器的高度相同时,字体会垂直居中。 */ line-height: 50px; text-decoration: none; background-color: rgb(234,123,1); } /*a链接没有被访问过时的样式*/ a:link { } /*a链接被访问过时的样式*/ a:visited { color: #1FDD0F; } /*鼠标悬停在该处时的样式*/ a:hover { background-color: rgb(123,123,123); } /*鼠标点击时的样式*/ a:active { background-color: rgb(213,213,2); } /*记忆诀窍:LoVe,HAte*/ /*必须严格按照这个顺序来写,否则伪类可能不起作用*/ /*link和visited伪类只能用于a标签,hover和active伪类可用于其他标签*/ </style> </head> <body> <a href="#" id="hahah">我是一只小小鸟</a> </body>
盒模型
- 盒模型包括:外边距(margin)、边框(border)、內边距(padding)、内容(content)。
- 边框的连写:border:size style color(1px solid reed);
- 內边距:可以看作是盒子内容的一部分(边框也是),因为改变內边距的大小会改变盒子大小。这种结果符合微软对盒模型的定义。
- padding(margin同理)的写法:
- padding:40px; 四周都加上40px的边框。
- padding:40px 20px;给上下內边距设置40px,给左右內边距设置20px.
- padding:5px 10px 15px 20px;以顺时针方向设置。
- 盒子的大小:内容加上边框和內边距的宽度.
- 很多标签默认带有margin和padding,清除默认边距的方法:
- *{margin:0 padding:0}
- 暂时使用,项目中不推荐使用这种方式
- 使小盒子在大盒子中居中的方法:因为增大padding会使盒子增大(符合微软对盒子大小的计算,即内容、边框、内边距都属于盒子内容的一部分,只有外边距属于边距,所以增大padding也相当于增大盒子).所以增大了內边距,要使盒子总大小不变,就要相应的缩小盒子的宽高,使盒子大小保持不变.
- demo:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.dad {
/*使小盒子在大盒子中居中*/
/*因为增大padding会使盒子增大(符合微软对盒子大小的计算,即内容、边框、内边距都属于盒子内容的一部分,只有外边距属于边距,所以增大padding也相当于增大盒子)*/
/*所以增大了內边距,要是盒子总大小不变,就要相应的缩小盒子的宽高,使盒子大小保持不变*/
width: 200px;
height: 200px;
background-color: red;
padding-left: 100px;
padding-top: 100px;
}
.son {
width: 100px;
height: 100px;
background-color: green;
}
</style>
</head>
<body>
<div class="dad">
<div class="son"></div>
</div>
</body>
</html>
伪类
- :first-child选择某个元素的第一个子元素;
- :last-child选择某个元素的最后一个子元素;
- :nth-child()选择某个元素的一个或多个特定的子元素;
- :nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算;
- :nth-of-type()选择指定的元素;
- :nth-last-of-type()选择指定的元素,从元素的最后一个开始计算;
- :first-of-type选择一个上级元素下的第一个同类子元素;
- :only-child选择的元素是它的父元素的唯一一个了元素;
- :only-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素;
- :empty选择的元素里面没有任何内容。
css属性
- pacity:0~1 透明度 数值越小越透明。
- border-radius: 单位:em,px,%, 边框圆角属性。
随机随写
- 把 display none 不会保留元素本该显示的空间,但是 visibility: hidden; 还会保留。
- 设置一个元素为 box-sizing: border-box; 时,此元素的内边距和边框不再会增加它的宽度。
.simple {
width: 500px;
margin: 20px auto;
-webkit-sfa: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.fancy {
width: 500px;
margin: 20px auto;
padding: 50px;
border: solid blue 10px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
3.想要所有的盒子都实现这样效果,只要在css初始化文件中加上下面这段代码就可以了:
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}