HTML&CSS3
04-CSS语法与选择器
1、CSS简介
层叠样式表
网页实际上是一个多层的结构,通过CSS可以分别为网页的每一个层来设置样式,类似PS的图层
内联样式(行内样式)
内部样式表
<style>
p{
color:red;
font-size:40px;
}
</style>
外部样式表
可以将css样式编写到一个外部的CSS文件中,通过link标签来引入外部的CSS文件
<link rel="stylesheet" href="./style.css">
将样式写到外部的CSS文件中,可以使用到浏览器的缓存机制,从而加快网页速度,提供用户的体验。
2、CSS基本语法
注释
<!-- html中单行注释 -->
<!-- html中多行注释
-->
/*
css中的注释
*/
/*
JS(JavaScript)和JQuery的注释
*/
基本语法
声明块
3、基本CSS选择器
通配符选择器(Universal selector)
元素选择器(Type selector)
类选择器(class selector)
-
.blue{ color:blue; }
class是一个标签的属性,它和id类似,不同的是class,
- 可以重复使用 - 可以通过class属性来为元素分组 - 可以同时为一个元素指定多个class属性 <p class="bluse size">类选择器</p>
ID选择器(ID selector)
属性选择器(Attribute selector)
-
语法:
- [属性名]选择含有指定属性的元素
- [属性名=属性值]选择含有指定属性和属性值的元素
- [属性名^=属性值]选择属性值以指定值开头的元素
- [属性$=属性值]选择属性值以指定值结尾的元素
- [属性名*=属性值]选择属性值含有某值的元素
p[title]{ color:red; } p[title$=e]{ color:red; }
4、复合选择器
交集选择器
并集选择器(选择分组)
5、关系选择器
- 父元素:直接包含子元素的叫父元素
- 子元素:直接被父元素包含的元素是子元素
- 祖先原始:直接或间接包含后代元素的元素叫祖先元素;父元素也是祖先元素
- 后代元素:直接或间接被祖先元素包含的元素叫做后代元素;子元素也是后代元素
- 兄弟元素:拥有相同父元素的元素是兄弟元素
子元素选择器(child combinator)
后代元素选择器
兄弟元素选择器
-
作用:选择下一个兄弟
-
语法:
6、伪类选择器
伪类:不存在的类,特殊的类。用来描述一个元素的特殊状态如:第一个子元素、被点击的元素、鼠标移入的元素…
这几个伪类的功能和上述的类似,不同点是他们是在同类型元素中进行排序的
-
u>li:first-child{} /*ul下第偶数个li,黄色*/ ul>li:nth-child(2n){color:yellow;} /*ul下除了第三个li,其余的都是红色*/ ul>li:not(:nth-of-type(3)){color:red;}
-
a:visited{}
7、伪元素选择器
伪元素::
开头
-
::before
元素的开始 -
p::first-letter{ background-color:yellow; } /*div前面加上内容*/ div::before{ content:'BEFORE'; color:red; }
06-盒子模型
1、文档流(normalflow)
网页是一个多层的结构,通过CSS可以分别为每一层来设置样式,作为用户来讲只能看到最顶上的一层,这些层中,最底下的一层称为文档流
2、块元素
3、行内元素
4、盒子模型
盒子模型
CSS将页面中所有元素都设置为一个矩形的盒子,对页面的布局就是将不同的盒子摆放到不同的位置
每一个盒子都是有一个几个部分组成
内容区
内容区是盒子的模型中心,它呈现了盒子的主要信息内容,这些内容可以是文本、图片等多种类型,元素中的所有的子元素和文本内容都在内容区中
边框
边框属于盒子边缘,边框里边属于盒子内部,出了边框都是盒子的外部
不论是border–width、border–color、border–style 还是其衍生出来的属性写法,都可以指定每个方向的边框情况
.box1{
border: 10px red solid;
}
内边距
外边距
外边距,位于盒子的最外围的空间。空白边使盒子之间不会紧凑的连接在一起,是CSS布局的一个重要手段
-
- 正值元素向右移动,负值元素向上移动
- 设置的左和上外边距则会移动元素自身
- 设置下和又外边距会移动其它元素
5、水平方向布局
元素再其父元素中水平方向的位置由以下几个属性共同决定
margin-left
border-left
padding-left
width
padding-right
border-right
margin-right
水平布局必须满足以下的等式
其父元素内容区的宽度 = margin-left
+ border-left
+ padding-left
+ width
+ padding-right
+border-right
+ margin-right
以上等式必须满足,如果相加结果使等式不成立,则称为 过度约束
等式会自动调整的情况
0+0+0+200+0+0+0=800
=> 0+0+0+200+0+0+600=800
6、垂直方向布局
元素溢出
overflow (overflow–x overflow-y)
外边距折叠
垂直外边距的重叠
不能让两个垂直margin相遇,否则就回发生外边距折叠。
兄弟元素
- 如果相邻的外边距都是正值,取两者之间的较大者
- 如果相邻的外边距都是一正一负,则取两者的和
- 如果相邻的外边距都是负值,则取两者中绝对值较大的
- 总结:兄弟元素之间的外边距的重叠,对于开发是有利的,不需要进行处理
父子元素
7、行内元素的盒模型
想要行内元素对页面布局产生影响
2、visibility
用来设置元素的显示状态
8、浏览器的默认样式
通常情况,浏览器都会为元素设置一些默认的样式
默认样式的存在会影响到页面的布局,通常情况下编写网页时必须要去除浏览器的默认样式(PC端的页面)
*{
margin:0;
padding:0;
list-style:none;
}
reset样式
normalize样式
原文地址:https://blog.csdn.net/weixin_45168162/article/details/134264072
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_42374.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!