CSS基本语法结构

1.CSS基本语法结构

文章目录

选择器{声明1;

​ 声明2;}

声明包括属性和值

html 复制代码
p{
color:#F00;
font-size:14px;
}

<style>标签

CSS代码是放在style标签中,它可以放在head中也可以放在body中 ,可以放到代码的任意位置

html 复制代码
<style>
  p{
    color:green
    }
</style>

2.HTML中引入CSS样式

2.1行内样式

使用style属性引入CSS样式

<p style="color:green; font-size:14px;" >直接引入</style>

2.2内部样式表

CSS代码写在style标签中

html 复制代码
<style>
    p{
        color:green;
    }
</style>

2.3外部样式表

2.3.1链接式

使用link标签链接

html 复制代码
<link rel="stylesheet" href="path"/>
2.3.2导入式

使用@import导入

html 复制代码
@import url("path")

2.4CSS基本选择器

2.4.1标签选择器

选择器直接使用HTML元素名称,用于选中页面中所有该类型的元素,并应用样式

css 复制代码
p {
  color: blue;
}

2.4.2类选择器

.开头,后面跟随类名,用于选中具有指定类属性的所有元素

css 复制代码
.a {
  background-color: yellow;
}

页面中任何拥有class="a"的元素背景色都会变成黄色

2.4.3ID选择器

#开头,后面跟随ID名,用于精确选中具有指定ID属性的单个元素。ID应保证页面中唯一

css 复制代码
#a {
  font-weight: bold;
}

这会使得ID为a的元素文本加粗

3.CSS的高级选择器

3.1层次选择器

3.1.1后代选择器

后代选择器也叫包含选择器,祖先元素直接或间接的包含后代元素

html 复制代码
<style>
    .a p{
        color:green;
    }
</style>


<div class="a">
    <p>
        000
    </p>
    <div>
        <p>
            111
        </p>
    </div>
</div>
<p>
    222
</p>

此时000和111会变成绿色

3.1.2子代选择器

使用>来选择直接子元素

html 复制代码
<style>
ul>li{
    	list-style-type: none;
    }
</style>
<ul>
    <li>111</li>
    <li>222</li>
    <li>333</li>
</ul>

选择所有ul元素的直接子元素li,去除列表样式

3.1.3相邻兄弟选择器

使用+,选择紧接在另一个元素之后的元素

html 复制代码
<style>
	h1 + p{
			text-indent: 2em;
			}
</style>

<h1>000</h1>
<p>111</p>
<p>222</p>

111会首行缩进2,但222不会

3.1.4通用兄弟选择器

使用~,选择某个元素之后的所有同级元素

html 复制代码
<style>
    .a ~ li{
        text-indent: 2em;
    }
</style>

<ul>
    <li>111</li>
    <li class="a">222</li>
    <li>333</li>
    <li>444</li>
    <li>555</li>
		</ul>

333,444,555会首行缩进2

3.2结构伪类选择器

++以child结尾的是在父级里从一个元素开始查找,不分类型++

**:first-child**选择作为父元素的第一个子元素的元素

**:last-child**选择作为父元素的最后一个子元素的元素

**:nth-child(n)**选择父元素中的第n个子元素

​ n 第n个 n的范围0到正无穷(全选)

​ even或2n 选中偶数位的元素

​ odd或2n+1 选中奇数位得到元素

++以type结尾的是在父级里先看类型,再看位置++

**:first-of-type **第一个子元素

:last-of-type最后一个子元素

**:nth-of-type() **选择同类型子元素中的第n个元素

html 复制代码
<style>
		/*a下面的第一个元素变,也就是标题1变*/
			.a :first-child{
				border: 2px solid blue;
			}
		/*a下面的第1个子元素是p的时候变,此时无变化*/
			.a p:first-child{
				border: 2px solid blue;
			}
			.a h1:first-child{
				border: 2px solid blue;
			}
		/*a下面的最后一个元素是p的时候变 ,此时段落4变*/
			.a p:last-child{
				border: 2px solid blue;
			}
		/*a下面的第2个元素是p的时候变,此时段落1变*/
			.a p:nth-child(2){
				border: 2px solid blue;
			}
		/*a下面的偶数元素变*/
			.a :nth-child(2n){
				border: 2px solid blue;
			}
		/* n是从0开始的数列 把n=0开始往n+3里面计算就可 */
        /* n=0  n+3=3 */
        /* n=1  n+3=4 */
        /* n=2  n+3=5... 结果就是第3,4,5,6,7,8,9...变*/
        /*a下面第二个元素以后是h1的变*/
			.a h1:nth-child(n+2){
				border: 2px solid red;
			}
			.a :first-child{
				border: 2px solid red;
			}
        /*a下面同类型的第一个变,结果标题1和段落1变(a下面共两个类型)*/
			.a :first-of-type{
				border: 2px solid blue;
			}
        /*a下面的最后一个元素是p时变,此时段落5变*/
			.a p:last-of-type{
				border: 2px solid blue;
			}
        /*a下面的h1类型中的第二个变,此时标题2变*/
			.a h1:nth-of-type(2){
				border: 2px solid red;
			}
		</style>


<div class="a">
			<h1>标题1</h1>
			<p>段落1</p>
			<h1>标题2</h1>
			<p>段落2</p>
			<p>段落3</p>
			<h1>标题3</h1>
			<p>段落4</p>
			<h1>标题4</h1>
			<p>段落5</p>
		</div>

3.3属性选择器

1.某某[属性]

2.某某[属性=属性值]

3.某某[属性^=属性值]

4.某某[属性$=属性值]

5.某某[属性*=属性值]

6.某某[属性~=属性值]

7.某某[属性|=属性值]

html 复制代码
<style>
    /*某某[属性] 选择到a标签且有title属性的变 */
    a[title]{
		background: yellow;
	} 
    /*某某[属性=属性值] 选择到有某某标签有指定属性且属性值必须一模一样的,多一个空格都不行 */
    a[lang="zh"]{
		background: yellow;
	}
    /* id是last且有title属性且有class属性,属性值只能是links的变 */
    #last[title][class="links"]{
		background: yellow;
	} 
    /*某某[属性^=属性值] a标签有class属性且属性值是li开头的 */
    a[class^="li"]{
		background-color: yellow;
	} 
    /*某某[属性$=属性值] a标签有class属性且属性值结尾是t的变 */
    a[class$="t"]{
		background-color: yellow;
	} 
    /*a标签有href属性且属性值结尾是.png的变*/
    a[href$=".png"]{
		background-color: green;
	} 
    /*某某[属性*=属性值] 选择到a标签且有href属性且只要有字母b就可以 */
    a[href*="b"]{
		background-color: green;
	} 
    /*某某[属性~=属性值] 选择到的是a标签且有class属性,且属性值有完整的itme词的变 */
    a[class~="item"]{
		background-color: green;
	} 
    /*某某[属性|=属性值] 选择到有a标签,且有属性title,且属性值只有1个是link的或者属性值有多个但是得是link-开头的变 */
    a[title|="link"]{
		background-color: green;
	}
</style>
相关推荐
啊阿狸不会拉杆几秒前
《机器学习导论》第 18 章-增强学习
人工智能·python·学习·算法·机器学习·智能体·增强学习
源力祁老师几秒前
Odoo ORM 将 Python 查询意图编译为 SQL 的逐函数讲解(Odoo 19)
java·服务器·数据库
那我掉的头发算什么1 分钟前
【图书管理系统】基于Spring全家桶的图书管理系统(上)
java·服务器·数据库·spring boot·后端·spring·mybatis
廋到被风吹走2 分钟前
SOLID原则深度解析:面向对象设计的五大基石
java·log4j
夏幻灵2 分钟前
CSS 布局深究:行框模型、幽灵节点与绝对居中的数学原理
前端·css
田里的水稻5 分钟前
FA_规划和控制(PC)-D*规划
人工智能·算法·数学建模·机器人·自动驾驶
Web打印5 分钟前
Phpask(php集成环境)之09 统一管理网站和监听端口
开发语言·php
cjl_8520086 分钟前
MS SQL Server 实战 排查多列之间的值是否重复
java
海兰7 分钟前
ES 9.3.0 日志模式分析
java·大数据·elasticsearch
程序员敲代码吗8 分钟前
微服务熔断降级配置详解与实践:使用Sentinel和Nacos
java·微服务·sentinel