zoukankan      html  css  js  c++  java
  • 慕课前端入门-CSS选择器

    1.CSS选择器

    通配符选择器:*{margin: 0}
    元素选择器:body{}
    类选择器:.red{}
    ID选择器:#green{}
    后代选择器:ul li{}

    选择器示例
    基本选择器子元素选择器:父元素>子元素
    只能选择父元素的子元素
    section>div{color: red;}
    相邻兄弟选择器:父元素+兄弟相邻元素
    可以选择紧接在另一元素后的元素,而且他们具有一个相同的父元素。
    section > div + article{color: red;}
    通用兄弟选择器:父元素 ~ 后面所有兄弟相邻元素
    选择某元素后面的所有兄弟元素,而且他们具有一个相同的父元素。
    section > div ~ article{color: red;}
    群组选择器:元素1,元素2...
    将具有相同样式的元素分组在一起,每个选择器之间使用,隔开
    article,div,aside{color:green;}
    属性选择器element[属性] 选择所有带有attribute属性的元素a[href]{color:green;}
    element[属性='vlue']选择所有使用attribute=value的元素 a[href="hello"]{color:green;}
    element[属性 ~= 'value']
    选择属性包含value的元素
    a[class ~= 'two']{color: red;}
    element[属性 ^= 'value']
    选择属性值以value开头的所有元素
    a[href ^= '#']{color: red;}
    element[属性 $= 'value']
    选择属性值以value结尾的所有元素
    a[href $= '#']{color: red;}
    element[属性 *= 'value']
    选择属性值包含value的所有元素
    a[href *= '#']{color: #abcdef;}
    element[属性 |= 'value']
    选择属性值为value或以value-开头的的所有元素
    a[href |= '#']{color: #abcdef;}
    伪类选择器 动态伪类(锚点伪类、用户行为伪类)
    这些伪类并不存在与html中,只有当用户和网站交互的时候才能体现出来
    锚点伪类(:link :visited) 用户行为伪类(:hover :active :focus)
    a:link{color:red;}//初始颜色
    a:visited{color:green;}//访问后颜色
    a:hover{color:orange;}//停留时颜色
    a:active{color:blue;}//点击时颜色
    input:focus{background:#abcdef;}
    UI元素状态伪类 :enable可输入 :disable不可输入 :checked被选中input:disabled{background-color: red;}
    CSS3结构类:nth
    :first-child 选择属于其父元素的首个子元素的每个Element元素
    :last-child 指定属于其父元素的最后一个子元素的element元素
    :nth-child(n) 匹配属于其父元素的第N个子元素(也可用表达式),不论元素的类型
    :nth-last-child() 匹配属于其元素的第N个子元素的每个元素,不论元素的类型,从最后一个子元素开始计数
    :nth-of-type() 匹配属于父元素的特定类型的第N个子元素的每个元素
    :nth-last-of-type() 匹配属于父元素的特定类型的第N个子元素的每个元素,从最后一个子元素开始计数
    :first-of-type 匹配属于其父元素的特定类型的首个子元素的每个元素
    :last-of-type 匹配属于其父元素的特定类型的最后一个子元素的每个元素
    :only-child 匹配属于其父元素的唯一子元素的每个元素
    :only-of-type 匹配属于其父元素的特定类型的唯一子元素的每个元素
    :empty 匹配没有子元素(包括文本节点)的每个元素
    section>div:first-child{color: #f00;}
    section>div:last-child{color: #f00;}
    ul>li:nth-child(even){background: yellow;}或使用2n偶数
    ul>li:nth-child(odd){background: yellow;}或2n+1奇数
    ul>li:nth-last-child(3){background: red;}
    div:nth-of-type(2){background: red;}该元素是div,且在父元素中排第2
    div:nth-last-of-type(1){background: red;}该元素是div,且在父元素中排倒数第一
    div:first-of-type{background: red;}
    div:last-of-type{background: red;}
    div:only-child{background: red;}子元素唯一
    div:only-of-type{background: red;}指定的元素唯一
    div:empty{background:red;}
    否定选择器:not(selector)
    匹配非指定元素/选择器的每个元素
    nav > a:not(:last-of-type){border-right:1px solid red;}
    伪元素 格式:元素::伪元素
    用于向某些选择器设置特殊效果
    ::first-line对元素的第一行文本进行格式化,只能用于块级元素。
    ::first-letter对文本的首字母设置样式,只能用于块级元素。
    ::before 在元素的内容前面插入新内容,常用content配合使用。
    ::after 在元素的内容后面插入新内容,常用content配合使用,多用于清除浮动
    ::selection用于设置在浏览器中选中文本后的背景色与前景色
    p::first-line{color:red;}
    p::first-letter{color:red;}
    p::before{content:'我在内容的前面';color:red;}特点:1.第一个子元素2.行级元素3.内容通过content写入4.标签中找不到对应的标签
    p::selection{background: red;color:#ff0;}

    1.2 权重

    当很多的规则被应用到某一个元素上时,权重是一个决定那种规则生效,或是优先级的过程。
    权重等级与权值:行内样式(1000)>ID选择器(100)>类、属性选择器和伪类选择器(10)>元素和伪元素(1)>*(0)
    权重计算口诀:从0开始,一个行内样式+1000,一个ID+100,一个属性选择器、class或者伪类+10,一个元素名或伪元素+1
    CSS权重规则:
    包含更高权重选择器的一条规则拥有更高的权重,如ID选择器(#idValue)的权重比属性选择器[id="idValue"]高
    带有上下文关系的选择器比单纯的元素选择器权重要高。如section>articile比article高
    与元素挨得近的规则生效
    最后定义的规则会覆盖上面与之冲突的规则
    无论多少个元素组成的选择器,都没有一个class选择器权重高,如div.hello比div高
    通配符选择器权重是0,被继承的css属性也带有权重,权重也是0

    1.3 示例:使用::after清除浮动

    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    	<style type="text/css">
    		header{background: #abcdef;border: 5px solid green;}
    		header::after{content:"";display: block;clear: both;}
    		header>article{float:left;40%;height:30px;background:#f00;}
    		header>aside{float: right; 40%;height: 50px;background: #ff0;}
    	</style>
    </head>
    <body>
    <header>
    	<article></article>
    	<aside></aside>
    </header>
    
    </body>
    </html>
    

    2.CSS边框和圆角

    2.1CSS圆角

    border-radius:复合属性 单位有px,em,rem,vw,百分比,不能只写数字
    border-top-left-radius:左上角的弧度
    border-top-right-radius右上角的弧度
    border-bottom-right-radius右下角的弧度
    border-bottom-left-radius左下角的弧度

    border-radius:50px 设置全部
    border-radius:50px(左上,右下) 25px(右上,左下)
    border-radius:50px(左上) 25px(右上,左下) 20px(右下)
    border-radius:50px(左上) 25px(右上) 20px(右下) 25px(左下)
    border-radius:50%长款不等得椭圆,长款相等得正圆
    

    圆角示例

    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    	<style type="text/css">
    		div{
    			position: relative;
    			 500px;
    			height: 300px;
    			border: 1px solid black;
    			-webkit-border-radius:50%;
    			   -moz-border-radius:50%;
    			    -ms-border-radius:50%;
    			     -o-border-radius:50%;
    			       border-radius: 50%;
    			line-height: 300px;
    			text-align: center;
    			font-size:24px;
    			font-weight: bold;
    		}
    		div::after,div::before{
    			position: absolute;
    			content:"";
    			display: block;
    			border: 1px solid black;
    			-webkit-border-radius:50%;
    			   -moz-border-radius:50%;
    			    -ms-border-radius:50%;
    			     -o-border-radius:50%;
    			       border-radius: 50%;
    		}
    		div:before{
    			 50px;
    			height: 50px;
    			bottom: -25px;
    			right:25px;
    		}
    		div:after{
    			 20px;
    			height: 20px;
    			bottom: -75px;
    			right:0px;
    		}
    	</style>
    </head>
    <body>
    <div>大家好,欢迎来到慕课网!</div>
    
    </body>
    </html>
    

    2.2CSS阴影

    box-shadow:可以设置一个或多个下拉阴影的框
    语法:box-shadow:h-shadow v-shadow blur spread color inset;
    h-shadow:水平方向偏移量。正值,右;负值,左。
    v-shadow:垂直方向偏移量。正值:下;负值:上。
    blur:模糊多少。不能有负值
    spread:扩展多少。负值,会在h-shadow和v-shadow的基础上减去
    color:阴影颜色
    inset:内阴影。不写默认外阴影

    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    	<style type="text/css">
    		div.wrapper{
    			 800px;
    			height:500px;
    			margin: 0 auto;
    			background: green;
    			position: relative;
    		}
    		div.inner{
    			position: absolute;
    			 500px;
    			height: 300px;
    			background: red;
    			margin: auto auto;
    			left: 0;
    			right: 0;
    			top: 0;
    			bottom: 0;
    			box-shadow: 50px 30px 0 -10px yellow inset;
    		}
    	</style>
    </head>
    <body>
    <div class="wrapper">
    	<div class="inner">大家好,欢迎来到慕课网!</div>
    </div>
    </body>
    </html>
    

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
    	<title>盒阴影</title>
    	<style type="text/css">
    		div{
    			 300px;
    			height: 200px;
    			background-color: #f0f;
    			margin:0 auto;
    		}
    		/*此处写代码*/
    		div:hover{
    			box-shadow: 10px 10px 0 0 #bbb;
    		}
    	</style>
    </head>
    <body>
    <div></div>
    </body>
    </html>
    

    2.3CSS边界

    border-image也是复合属性:共有5个值。
    source:指定要使用的图像,而不是有border-style属性设置的边框样式
    slice:指定图像的边界向内偏移 number/百分比/fill默认
    width:图像边界的宽度 number/百分比/auto
    outset:指定在边框外部绘制border-image-area的量。length/number
    repeat:stretch拉伸、repeat重复、round铺满、initial默认值、inherit继承

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
    	<title>盒阴影</title>
    	<style type="text/css">
    		div{
    			margin-top: 100px;
    			 853ps;
    			height: 392px;
    			border: 50px solid;
    			border-image-source: url("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1598622136420&di=9bfdca4a279d53f9a14d352e9e595778&imgtype=0&src=http%3A%2F%2Fbpic.588ku.com%2Felement_origin_min_pic%2F18%2F03%2F29%2Fd8c03a32882567cc19ebf381abc5d5de.jpg");
    			border-image-slice: 50%;
    			border-image- 50%;
    			border-image-outset: 2;
    			border-image-repeat: repeat;
    		}	
    	</style>
    </head>
    <body>
    <div></div>
    </body>
    </html>
    

  • 相关阅读:
    [转载]Bat语法
    [转载]白手起家学习使用flex
    [转载]Highcharts结合Asp.net实现动态数据股票式图形显示实例
    [转]uploadify3.0详细使用说明
    转帖:UML实践用例图、顺序图、状态图、类图、包图、协作图
    [转]JQuery操作Table
    [转]Chrome developer tool介绍(javascript调试)
    [转载]C# 指针之美
    [转载]C# 温故而知新: 线程篇(二)
    [转载]Javascript定义类(class)的三种方法
  • 原文地址:https://www.cnblogs.com/csj2018/p/13573490.html
Copyright © 2011-2022 走看看