分享

05、css基本样式和c3选择器

 夜猫速读 2022-05-05 发布于湖北

一、背景

1.background-color  背景颜色

默认值是transparent(透明的)

当同时定义了背景图像和颜色时,背景图像将覆盖在背景颜色之上

.divclass{ background-color:#808080;}
































<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>背景图片位置</title><style>div{width: 500px;height: 500px;background-color:rgb(255,102,255,1);background-image: url("images/wangfeng.jpg");background-repeat: no-repeat;/*background-position:center center ;第一个参数代表水平位置 第二个参数代表垂直位置*//* background-position: top; 第二个参数默认是center *//*background-position: 30px 10px; 第一个参数是水平方向 第二个参数是垂直位置*/background-position: 50px center;}</style></head><body><!--background-position 定位1.方位名称 left top right center bottom2.精确数字3.混搭--><div></div></body></html>

颜色的取值

1.关键字:red、blue等

2.16进制:#000000、#cccccc、#ff0000等

3.rgb(0,0,0)

4.rgba(0,0,0,.5)










































<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>背景附着</title><style>body{background-image: url("images/timg.jpg");background-attachment: fixed;}p{color: white;font-size: 50px;}</style></head><body><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p><p>背景图片是否回随着其余内容的滚动而移动 </p></body></html>

2.background-image  背景图片

默认值是none(没有图片)

元素的背景占据了元素的全部尺寸,包括内边距和边框,但不包括外边距

通过url使用绝对或相对地址指定图片

background-image:url("images/img.jpg");

3.background-repeat  背景图片是否重复

4.background-size  背景图片大小

5.background-position  背景图片位置(相对于外层容器)

6.background-attachment:  背景图片是否随内容滚动

2.font-style 指定文本的字体样式(正常、斜体)

默认值 normal

属性值

normal  正常字体

italic  斜体字

p{ font-style:italic; }

3.font-size 指定文本字体大小

通过像素来指定字体大小  1px= 1像素

p{ font-size:12px; }



























<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>背景简写</title><style>div{width: 500px;height: 500px;/* background-color:rgb(255,102,255,1);background-image: url("images/wangfeng.jpg");background-repeat: no-repeat;/!*background-position:center center ;第一个参数代表水平位置 第二个参数代表垂直位置*!//!* background-position: top; 第二个参数默认是center *!//!*background-position: 30px 10px; 第一个参数是水平方向 第二个参数是垂直位置*!/background-position: 50px center;*/background: url("images/wangfeng.jpg") no-repeat ;}</style></head><body><div></div></body></html>

4.font-family 定义文本使用某个字体

默认值 由浏览器确定

示例

font-family:microsoft YaHei;

font-family:"MicrosoftYaHei","Simsun","SimHei";

5.font-weight 指定文字的粗细

6.letter-spacing:;设置字的间距  如:div{letter-spacing:2px;}

7.opacity  设置颜色的透明度,整个元素都会透明

默认值1,取值为0-1

1为不透明,0为完全透明

示例

p{ opacity: 0;}  隐藏一个元素 ,完全不显示,但是会占空间,只是看不到。

p{ opacity: 1;} 显示一个元素

它和rgba中的”a”作用一样

8.overflow:hidden|auto|scroll;当内容溢出元素框时隐藏|自动|显示滚动条

9.text-overflow:让溢出的文字以省略号显示

p{height: 20px; width:100px; background:#ddd;

white-space: nowrap;    //让文字在同一行显示,不换行

overflow: hidden;       //溢出部分隐藏

text-overflow: ellipsis; //文字溢出部分省略号显示,另外一个值为clip

<p>这段文字多余的部分会显示为省略号</p>

三、文本属性

1.text-align 内容对齐方式,它是针对于元素的内容

属性值 left|center |right 

p{text-align: center;} 

p是块元素,left、right和center会作用于整个行























<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>字体属性</title><style>p{color: green;font-style: normal;font-size: 20px;font-family: "宋体";font-weight: 100;}</style></head><body>

</body></html>

2.text-decoration 指定文字有无装饰,默认值为none

属性值:

underline 指定文字的装饰是下划线

overline 指定文字的装饰是上划线

line-through 指定文字的装饰是贯穿线,类似于删除标签的效果

3.text-transform设置对象中的文本的大小写

默认值none  无转换

属性值

capitalize  将每个单词的第一个字母转换成大写

p{text-transform: capitalize; }

<p>thisis paragraph</p>

uppercase  全部转换成大写

p{text-transform: uppercase; }

lowercase  转换成小写

p{text-transform: lowercase; }

<p>THISIS PARAGRAPH</p>

4.text-indent文本缩进 

文本缩进属性是用来指定文本的第一行的缩进。

如:p {text-indent:2em;}

1em和当前字体大小相等。在浏览器中默认的文字大小是16px。

因此,1em的默认大小是16px。

5.word-wrap  设置当前行超过指定容器的边界时是否换行

首先我们要知道一种情况:如果你容器中的单词过长,超出了容器本身的宽度,会造成“长单词溢出”

word-wrap:break-word;可设置过长的文本自动换行

5.vertical-align  设置对象内容的垂直对其方式。

是容器中元素相对于内容的显示

示例

div{ background:orange; height: 100px;}

a {display:inline-block; height:100px; width:80px; background:red; vertical-align:middle;}

<div>这里有内容<ahref="#"></a></div>    

*div中定义a,vertical定义的是a相对于div内容的对齐方式,它和容器的高度无关,与文字内容有关






























<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>font简写</title><style>p{color: green;/* font-style: normal;font-size: 20px;font-family: "宋体";font-weight: 100;*/font: italic bold 20px "黑体";letter-spacing: 2px;/*设置字的间距*/}/*font简写:1.必须按照官方给定的顺序给值2.font-size和font-family不可缺少*/</style></head><body><h2>尚学堂简介</h2><p>编码逻辑<br/></body></html>

示例2

p{background:orange; }

img{ width:100px; vertical-align:middle; }

<p>thisis paragraph!!!<imgsrc="images/boy.jpg"alt=""/></p>

6.line-height 设置对象的行高(不允许使用负值)

我们一般用行高来使一行文字垂直居中,当行高等于高时,一行文字垂直居中

四、列表属性

1.list-style-image 设置列表项标记的图像(项目符号)

只有一个属性url,引导一个图片

ul{list-style-image: url("images/icon.png");}

示例

用list-style-image重置项目符号示例

.test{list-style-image:url(skin/ico.png);} 

//整体重置作用于ul,单个设置用于li上

<ul>

<li>列表项一</li>

<li>列表项一</li>

<li>列表项一</li>

<li>列表项一</li>

</ul>

2.list-style-position 设置列表项标记如何根据文本排列

这个属性有两个值outside和inside

outside项目符号放在文本以外(默认)

ul li{ list-style-position:outside; width:100px;   border:1px solidred;}

inside项目符号放在文本以内

ulli{ list-style-position:inside;  width:100px;  border:1px solid red;}






























<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>颜色透明度和文章溢出</title><style>div{width: 300px;height: 300px;background-color:green;color: red;opacity: 1;
overflow: scroll;}p{ height: 20px; width:100px; background:#ddd;white-space: nowrap; /* //让文字在同一行显示,不换行*/overflow: hidden; /* //溢出部分隐藏*/text-overflow: ellipsis;/* //文字溢出部分省略号显示,另外一个值为clip*/}</style></head><body><p>这段文字多余的部分会显示为省略号</p></body></html>

3.list-style-type 设置列表项所使用的预设标记

可选值

none不使用项目符号

disc实心圆(相当于html属性type=”disc”)

circle空心圆

square实心方块

示例

ul{list-style-type:circle;}

4.list-style

复合属性

写法

list-style:list-style-image  list-style-position   list-style-type

把之前几个属性值写在一个list-style中


































<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>文本属性一</title><style>h3{/* text-align: center;*//*text-align: right;*/text-align: left;}a{/*text-decoration: none;*/text-decoration: line-through;}span{/*text-transform: capitalize;*//*text-transform: uppercase; 全部转为大写*/text-transform: lowercase;}p{text-indent: 16px;}</style></head><body><span>Introduce shang xuetang</span>
</body></html>

示例

ul{ list-style: url("images/icon.png") outside disc;}

前面设置了图片,最后再设置项目符号的目的是,如果图片未能正常显示,可以有符号来代替

css3选择器

首先CSS选择器分这么几大类:

1.基础选择器

2.合并选择器

3.关系选择器

4.属性选择器

5.伪类选择器

6.伪对象选择器

一、关系选择器

1.后代选择器 (E F)

选择所有被E元素包含的F元素,中间用空格隔开

ul li{ color:red; }

<ul>

<li>苹果</li>

<li>橙子</li>

<li>西瓜</li>

</ul>

2.子代选择器 (E > F)

选择所有作为E元素的直接子元素F,对孙子元素不起作用,用大于号表示

div>a{color:red;}   //div下的一级子元素a

<div>

<a href="#">这是子元素</a>

<p><a href="#">这是孙子元素</a></p>

</div>

3.相邻兄弟选择器 (E+F)

选择紧贴在E元素之后F元素,用加号表示,选择相邻的第一个兄弟元素。

p+span{ color:red;}   //只会选中第一个span

<p>这是p元素</p>

<span>这是紧挨着p元素的第一个span</span>

<span>这是第二个span</span>

4.通用兄弟选择器 (E~F)

选择E元素之后的所有兄弟元素F,作用于多个元素,用~号隔开。

p~span{ color:red;}   

//和p之后平级的span元素都被选中了,有几个选中几个

<span>这span在p元素之前不会被选中</span>   

<p>这是p元素</p>

<span>这是紧挨着p元素的第一个span</span>

<span>这是第二个span</span>

<span>这是第三个span,它和p是兄弟关系</span>

二、CSS属性选择器:

通过html的属性来选择元素,<p class=”p1”></p>  class即是属性,p1是class的属性值。 

写法:元素[ 属性名= “属性值”] ,等号不固定,可换其它符号

1.E[att]

2.E[att="val"]

3.E[att~="val"]

4.E[att^=“val"]    以val开头

5.E[att$=“val"]    以val结尾

6.E[att*=“val"]    包含val

7.E[att|="val"]

1.E[att] 选择具有attr属性的E元素

p[class]{color:red;}    //选择带有class属性的p标签

<pclass="p1">这是p1标签</p>

<pclass="p2">这是p2标签</p>

<pclass="p3">这是p3标签</p>

<pclass="p4">这是p4标签</p>

*不管class名为什么,只要有class属性,即符合

2.E[att="val"]  选择具有att属性且属性值等于val的E元素。

它不仅要有符合的属性,值也要符合才会被选中。































<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>列表属性</title><style>.test{/*list-style-image: url("images/duihao.png");*/list-style-type: square;
}li{/* list-style-position: inside;*/width: 100px;border:1px solid red ;list-style:outside url("images/duihao.png") disc ;}</style> </head><body><h3>大家喜欢吃什么水果?</h3><ul class="test" ><li>苹果</li><li>香蕉</li><li>西瓜</li></ul></body></html>

p[class="p4"]{color:red;}    //选择p元素里class等于p4的元素,属性值要用引号引起来

<pclass="p1">这是p1标签</p>

<pclass="p2">这是p2标签</p>

<pclass="p3">这是p3标签</p>

<pclass="p4">这是p4标签</p>

3.E[att~="val"]  选择有att属性的元素,且属性值列表中有一个符合val的元素

比如我们的class属性,它的值通常是多个样式,中间以空格隔开,只要有一个值符合就被选中

p[class~="p1"]{color:red;}    //选中p元素下class值包含p1的元素

<p class="p1 paragraph p11">这是个段落</p>

<p class="p1paragraph p11">这是个段落</p>   //不会被选中,p1paragraph被看作一个整体

<p class="p1">这是个段落</p>

<p class="paragraph p1 p11">这是个段落</p>   //与位置无关,这行也会被选中

<p>这是个段落</p>

4.E[att^=“val"] 选择E元素中有att属性,且以”val”开头的元素

p[class^="p"]{color:red;} //选择带有class属性,属性值以p开头的元素

<p class="p1 paragraph p11">这是个段落</p>

<p class="p1paragraph p11">这是个段落</p>

<p>这是个段落</p>

<p class="paragraph p11">这是个段落</p>

<p>这是个段落</p>

*以上全部是以class值以p开头的,所以全部选中

5.E[att$=“val"]  选择具有att属性且属性值为以val结尾的字符串的E元素

p[class$="p"]{color:red;}     //选择p元素中class属性值以p结尾的元素

<pclass="p1 paragraph p11p">这是个段落</p> 

<pclass="p1paragraph p11">这是个段落</p>

<pclass="p1">这是个段落</p>

<p class="paragraph p1 p11">这是个段落</p>

<p class="p11p">这是个段落</p>

6.E[att*=“val"] 选择具有att属性且属性值包含val的字符串的E元素。  

a[href*="baidu"]{font-weight: bold;}   //选择a标签中href属性值包含baidu的元素

<a href="http://www.baidu.com">百度</a>

<a href="#">空的超链接</a>

<a href="http://www.youdao.com">有道</a>

7.E[att|="val"]  选择具有att属性,并且属性值用“链接符隔开”,以val开头的元素(val指链接符前完整的前缀)

项目中我们命名class名时,经常会以这种方式”sxt-work”,中间以一个中划线隔开。这时候使用此属性再合适不过。

div[class|="sxt"]{color:red;}   //div里class类名中有链接符,并且以sxt开头的元素

<div class="sxt-work">这是块元素work</div>

<divclass="work-sxt">这是块元素car</div>   //不是以sxt开头

<div class="sxt-pen">这是块元素pen</div>

<divclass="sxtpen">这是块元素pen</div>   //没有链接符

三、伪类选择器

伪类通过冒号来定义,它定义了元素的状态,如点击按下、点击完等等,我们之前都是直接操作元素的样式,现在可以为元素的状态改样式,使元素看上去更“动态”。

1.E:link

2.E:visited

3.E:hover

4.E:active

5.E:not()

6.E:first-child

7.E:last-child

8.E:only-child

9.E:empty

10.E:checked

11.E:nth-child()

1.E:link

设置超链接a在未被访问前的样式(特指a标签)

a:link{ color:red;}   //未访问时a的颜色,设置别的元素没有效果

2.E:visited

设置超链接a在其链接地址已被访问过时的样式(特指a标签)

a:visited{ color:green;}  //点击过后的超链接样式

*测试时,在url后面加参数使页面达到未访问过的状态

3.E:hover

设置鼠标悬停在元素上时的样式。不限于a标签,p、li也可以使用

a:hover{ color:red;}

p:hover{ color:red;}

<ahref="#">这是个超级链接</a>

<p>这是个段落</p>

4.E:active   

设置元素在鼠标按下时的样式(不限于a标签)

a:active{ color:red;}

p:active{color:yellow;}

div:active{ color:blue;}

<a href="#">百度</a>

<p>这是段落</p>

<div>这是div</div>

5.E:not(s选择器) 匹配不含有s选择器的元素E。

div:not(.d1){ color: red;}

//选择除了类名为d1的元素,注意,not()中的值不加引号!

<div>块元素</div>

<div>块元素</div>

<div>块元素</div>

<div class="d2 d1">块元素</div>

<divid="div2">块元素</div>

6.E:first-child 父元素的第一个子元素E。

要使该属性生效,E元素必须是某个元素的子元素。一般元素都是body的子元素,所以都可以使用此伪类。而body标签不是子元素,所以 body:first-child

{background:#ddd;} 是无效的。

<ul>

<h2>标题</h2>

<li>元素</li>

<li>元素</li>

<li>元素</li>

<li>元素</li>

</ul>

<ul>

<li>元素</li>

<li>元素</li>

<li>元素</li>

<li>元素</li>

</ul>

注意观察两个样式的区别

li:first-child{ color:red;}

ul:first-child{color:red;}

这个属性的意思是被选元素本身是子元素,并且是它父元素中的第一个

















































<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>圆角</title><style>/* div{margin: 0 auto;width: 100px;height: 100px;background-color: red;border: 10px solid #ccc;border-radius: 60px;}*/div{width: 200px;height: 100px;background-color: red;border-radius: 50%;/*border: 3px solid #ccc;*//*border-radius: 20px 30px 40px 50px ;*/}/*.test1{width: 200px;height: 150px;background-color: blue;border-radius: 30px;}.circle{width: 60px;height: 60px;background-color: red;border-radius: 30px;}*/</style></head><body><!--border-radius 设置值:px % em--><div></div><!--<div class="test1"><div class="circle"></div></div>--></body></html>

7.E:last-child 父元素的最后一个子元素E

8.E:only-child   E元素是唯一的子元素时被匹配

<body>

<p>段落</p>   

</body>

此时body中只有这一个元素,所以 p:only-child{ color:deepskyblue;}  会生效

<body>

<p>段落</p> 

<p>段落</p>

</body>

这时body的子元素不是唯一的了,所以 p:only-child{ color:deepskyblue;} 不会生效

9.E:empty    匹配没有任何子元素(并且不包括text节点)的元素E

p:empty{ border:1px solidred;padding:10px;}

<p></p>    

<div></div>   //空,但不是P元素

<p>我是一个p元素</p>   //有text文本节点

<p><a href="#">百度</a></p>   //有子元素

10.E:checked  

匹配用户界面上处于选中状态的元素E。(用于inputtype为radio与checkbox时)

input:checked+span{color:red;}  

<input type="radio"name="sex"/><span>男生</span>

<input type="radio"name="sex" checked="checked"/><span>女生</span>

*input下被选中的元素紧挨着的span颜色为红色,因为选中状态会变,所以看着像动态的

11.E:nth-child()   选中第几个子元素

<div>

<p>1</p>

<p>2</p>

<p>3</p>

</div>

.boxp:nth-child(2){

color: red;

}

//选中第二个p元素

.box p:nth-child(even){

color: red;

}

//选中第偶数个子元素

.box p:nth-child(odd){

color: red;

}

//选中第奇数个子元素

四、伪对象选择器

伪对象也叫伪元素,在过去,伪类和伪元素都被书写成前面只加一个冒号,实际上应该    :weilei   ::weiyuansu,而现在我们为了兼容旧的书写方式,用一个冒号引导伪元素也是能被解析的。

伪类一般反映无法在CSS中轻松或者可靠检测到的某个元素的状态或者属性;

伪元素表示DOM外部的某种文档结构

伪类更多是定义元素的状态,而伪元素则是改变文档结构,在结构外另加一个没有实际存在的元素(伪元素)

常用伪元素

1.E:before/E::before

2.E:after/E::after

1.E:before/E::before

before 选择器在被选元素的”内容”前面插入内容。用来和content属性一起使用

虽然E:before可转化为E::before,但是你写伪元素时要规范,用两个冒号  p::before{ content:"在P标签元素内容前加了内容"; color: red;}

//它并没有在html文件结构中

<p></p>

2.E:after/E::after

after选择器在被选元素的”内容”后面插入内容

p::after{ content:"在P标签元素内容前加了内容"; color: red;}

<p></p>

*content属性与:before 及 :after 伪元素配合使用,来插入生成内容。

CSS选择器优先级

优先级数值比较:以数值大的为准

记住以下四个然后进行计算

style  =  1000

id  =  100

class  =  10

element  =  1

style样式>ID选择器>class选择器>元素选择器

优先级相同,写在后面的样式起作用



































<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>阴影</title><style>/* div{margin: 100px auto;width: 100px;height: 100px;border: 2px solid green;/!* box-shadow: -10px 0 10px red, /!*左边阴影*!/0px -10px 10px #000,/!*上边阴影*!/10px 0px 10px green,/!*右边阴影*!/0px 10px 10px blue;/!* 下边阴影*!/!*!/box-shadow: 0px 0px 10px red inset;}*/.text1{font-size: 50px;font-weight: bold;color: palegreen;text-shadow: 10px -5px 5px pink;}</style></head><body><!--<div></div>--><div class="text1">编码逻辑</div></body></html>

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多