for private use - css forgetful

1、复合选择器

选择器名称 示例 示例的意义
后代选择器 .box .spec 选择类名为box的标签内部的类名为spec的标签
交集选择器 li.spec 选择既是li标签,也属于spec类的标签
并集选择器 ul, ol 选择所有ul和ol标签

2、元素关系选择器

名称 示例 示例的意义
子选择器 div>p div的子标签p
相邻兄弟选择器 img+p 图片后面紧跟着的段落将被选中
通用兄弟选择器 p~span p元素之后所有同层级span元素

3、序号选择器

举例 意义
:first-child 第一个子元素
:last-child 最后一个子元素
:nth-child(3) 第3个子元素
:nth-of-type(3) 第3个某类型子元素
:nth-last-child(3) 倒数第3个子元素
:nth-last-of-type(3) 倒数第3个某类型子元素
    <!-- 
        1、nth-child()可以写成 an + b 的形式,表示从b开始每a个选1个,注意不能写成 b + an
        2、2n + 1等价于odd,表示奇数
        3、2n等价于even,表示偶数
     -->
     .box p:nth-child(3n + 2) {
        color: green;
     }
    // <p>2</p> 和 <p>5</p> 会被选择
    <div>
        <p>1</p>
        <p>2</p>
        <p>3</p>
        <p>4</p>
        <p>5</p>
        <p>6</p>
    </div>

4、属性选择器

举例 意义
img[alt] 选择有alt属性的img标签
img[alt="故宫"] 选择alt属性是故宫的img标签
img[alt^="故宫"] 选择alt属性以故宫开头的img标签
img[alt$="故宫"] 选择alt属性以故宫结尾的img标签
img[alt*="故宫"] 选择alt属性中含有故宫的img标签
img[alt~="故宫"] 选择alt属性中有空格隔开的故宫字样的img标签
img[alt|="故宫"] 选择有alt属性以“故宫-”开头的img标签

5、伪类

伪类是添加到选择器的描述性词语,指定要选择的元素的特殊状态,超级链接拥有4个特殊状态

伪类 意义
a:link 没有被访问的超级链接
a:visited 已经被访问过的超级链接
a:hover 正被鼠标悬停的超级链接
a:active 正被激活的超级链接(按下按键但是还没有松开按键)

CSS3新增伪类

伪类 意义
:empty 选择空标签
:focus 选择当前获得焦点的表单元素
:enabled 选择当前有效的表单元素
:disabled 选择当前无效的表单元素
:checked 选择当前已经勾选的单选按钮或者复选框
:root 选择根元素,即<html>标签

6、伪元素

CSS3新增了“伪元素”特性,顾名思义,表示虚拟动态创建的元素。伪元素用双冒号表示,IE8可以兼容单冒号。

伪元素 意义
::before 创建一个伪元素,其将成为匹配选中的元素的第一个子元素,必须设置 content 属性表示其中的内容
::after 创建一个伪元素,其将成为匹配选中的元素的最后一个子元素,必须设置 content 属性表示其中的内容
::selection CSS伪元素应用于文档中被用户高亮的部分(使用鼠标圈选的部分)
::first-letter 会选中某元素中(必须是块级元素)第一行的第一个字母
::first-line 会选中某元素中(必须是块级元素)第一行全部文字

7、选择器权重

id权重 > class权重 > 标签权重

    <div id="box1" class="box1">
        <div id="box2" class="box2">
            <div id="box3" class="box3">
                <p>我是段落</p>
            </div>
        </div>
    </div>

        /* 权重(2, 0, 1) */
        #box1 #box2 p {
            color: red;
        }
        /* 权重(2, 1, 2),权重最大,所以颜色为蓝色 */
        #box1 div.box2 #box3 p {
            color: blue;
        }
        /* 权重(0, 3, 1) */
        .box1 .box2 .box3 p {
            color: green;
        }

        /* 
            1、在继承的情况下,选择器权重计算失效,而是“就近原则” 
            2、所以下面两个例子,p颜色最终为蓝色
        */

        #box1 #box2 #box3 {
            color: red;
        }
        p {
            color: blue;
        }

        #box1 #box2 {
            color: red;
        }
        .box1 .box3 {
            color: blue;
        }

7、盒模型

1、margin

1、竖直方向的margin有塌陷现象:小的margin会塌陷到大的margin中,从而margin不叠加,只以大值为准。水平方向没有塌陷现象。
2、行内元素上下margin无效,转为块级元素后才会生效

2、盒子水平居中

        .box {
            width: 200px;
            height: 200px;
            background-color: red;
            /* 盒子水平居中 */
            margin: 0 auto;
            /* 文字居中 */
            text-align: center;
            /* 行高等于盒子高,让文字垂直居中 */
            line-height: 200px;
        }

3、box-sizing

1、 将盒子添加了 box-sizing: border-box; 之后,盒子的width、height数字就表示盒子实际占有的宽高(不含margin),即padding/border变为“内缩”的,不再扩张。
2、多应用于移动网页开发中,兼容到IE9。

4、行内元素和块级元素

display属性类型 是否能并排显示 是否能设置宽高 当不设置width属性时 举例
块级元素 width自动撑满 div、section、header、h、li、ul等
行内元素 width自动收缩 a、span、em、b、u、i等
  • 使用display: block; 即可将元素转为块级元素
  • 使用display: inline; 即可将元素转为行内元素,将元素转为行内元素的应用不多见
  • 使用display: inline-block; 即可将元素转为行内块

行内块:img和表单元素是特殊的行内块,它们既能够设置宽度高度,也能够并排显示

浮动的元素不再区分块级元素、行内元素,已经脱离了标准文档流,一律能够设置宽度和高度,即使它是span或者a标签

5、元素的隐藏

1、使用display: none; 可以将元素隐藏,元素将彻底放弃位置,如同没有写它的标签一样。
2、使用visibility: hidden; 也可以将元素隐藏,但是元素不放弃自己的位置。

        ul {
            /* 去掉无序列表小圆点 */
            list-style: none;
        }
        a {
            /* 去掉超级链接下划线 */
            text-decoration: none;
            /* 添加下划线 */
            text-decoration: underline;
            /* 添加中划线 */
            text-decoration: line-through;
            /* 文字是否倾斜 */
            font-style: italic;
        }
        p {
            /* 首行缩进,em表示字符宽度 */
            text-indent: 2em;
        }

8、浮动与定位

1、浮动

浮动的最本质功能:用来实现并排
清除浮动:浮动一定要封闭到一个盒子中,否则就会对页面后续元素产生影响

清除浮动的方法:(项目中最常用的是1和4)
  • 让内部有浮动的父盒子形成BFC,它就能关闭住内部的浮动。此时最好的方法就是overflow: hidden;属性
  • 给后面的父盒子设置clear: both;属性。clear表示清除浮动对自己的影响,both表示左右浮动都清除。
  • 使用::after伪元素给盒子添加最后一个子元素,并且给::after设置clear: both;
  • 在两个父盒子之间“隔墙”,各一个携带clear: both的盒子。

2、BFC规范

BFC(Box Formatting Content,块级格式化上下文)是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。创建BFC的方式如下,方法4项目中用的最多
注:BFC可以取消盒子margin的塌陷
为什么要形成BFC规范,这要从一个现象说起:一个盒子不设置height,当内容子元素都浮动时,无法撑起自身

  • float的值不是none
  • position的值不是static或者relative
  • display的值是inline-block、flex或者inline-flex
  • overflow: hidden;(最常用)

3、相对定位

概念:盒子可以相对自己原来的位置进行位置调整,称为相对定位。
性质:相对定位的元素会在“老家留坑”,本质上仍然是在原来的位置,只不过渲染在新的地方而已,渲染的图形可以比喻成“影子”,不会对页面其它元素产生任何影响。
用途:用来微调元素位置

4、绝对定位

① 概念:盒子可以在浏览器中以坐标进行位置精准描述,拥有自己的绝对位置
绝对定位的元素脱离标准文档流,将释放自己的位置,对其它元素不会产生任何干扰,而是对它们进行压盖
③ 绝对定位的盒子会以自己祖先元素中,离自己最近的拥有定位属性的盒子,当做基准点。这个盒子通常是相对定位的,所以这个性质也叫子绝父相
④ 用途:绝对定位用来制作“压盖”、“遮罩”效果
⑤ 堆叠顺序 z-index 属性:z-index属性是一个没有单位的正整数,数值大的能够压住数值小的

绝对定位的盒子垂直居中是一个非常实用的技术
            position: absolute;
            top: 50%;
            margin-top: 负自己高度的一半;

5、固定定位

不管页面如何卷动,它永远固定在那里,比如返回顶部、楼层导航等等
固定定位只能以页面(浏览器)为参考点,没有子固父相这个性质
固定定位脱离标准文档流

9、边框与圆角

            /* 
                solid 实线
                dashed 虚线
                dotted 点状线
             */
            border: 1px solid #000;

            /* 50%可以设置元素为椭圆形,为宽度的一半px设置为胶囊形 */
            border-radius: 50%;

            /* 
                inset: 盒子内阴影,可不写
                2px: x方向偏移量,正值向右,负值向左
                3px: y方向偏移量,正值向下,负值向上
                4px: 模糊量,0不模糊,值越大越模糊
                5px: 阴影延展,阴影会向四个方向进行延伸,可不写
                red: 阴影颜色
                注:可添加多阴影
             */
            border-shadow: inset 2px 3px 4px 5px red;
            border-shadow: 2px 3px 4px red, 3px 3px 3px blue, inset 2px 3px 4px 5px green;

10、背景与渐变

背景重复模式
            /* 
                repeat: x、y方向均平铺(默认)
                repeat-x: x方向平铺
                repeat-y: y方向平铺
                no-repeat: 不平铺
             */
            background-repeat: repeat;
            background-image: url(../image/01.png);
背景尺寸
            /* 
                contain: 表示将背景图片智能改变尺寸以容纳到盒子里
                cover: 表示将背景图片智能改变尺寸以撑满盒子
                100px 为宽度, 200px 为高度
                值可以用百分数来设置,表示为盒子宽高的百分之多少
                需要等比例设置的值,写auto: 宽度为100px, 高度等比例显示
             */
             background-size: cover;
             background-size: 100px 200px;
             background-size: 50% 50%;
             background-size: 100px auto;
背景裁切
            /* 
                border-box: 背景延伸至边框值(默认值)
                padding-box: 背景延伸至内边(padding),不会绘制到边框处(仅在dotted、dashed边框可察觉)
                content-box: 背景裁切到内容区域
             */
            background-clip: content-box;
            /* 背景起源,当设置为content-box,图片很小然后平铺在内容区域的时候,会发现左上角图片没有从起始位置开始,此时这条属性可以使用,项目中不常用 */
            background-origin: content-box;
背景固定
            /* 
                background-position属性可以设置背景图片出现在盒子的什么位置
                可以用top、bottom、center、left、right描述图片出现的位置
             */
            background-position: 100px 200px;
            background-position: center center;
背景综合属性
            /* 
                background综合属性:
                背景颜色:当图片为透明背景时可用
                背景图片
                背景重复
                背景位置
             */
            background: white url(./images/girl.png) no-repeat center center;
线性渐变
  • 盒子的background-image属性可以用linear-gradient()形式创建线性渐变背景
            /* 
                to right:渐变方向,也可以写成度数,如45deg
                red: 中间颜色
                blue: 中间颜色,可以有多个颜色值,并且可以用百分数定义它们出现的位置
                green: 结束颜色
             */
            background-image: linear-gradient(to right, red, blue 20%, green);
            background-image: linear-gradient(45deg, red, blue, green);
径向渐变
  • 盒子的background-image属性可以用radial-gradient()形式创建径向渐变背景。实际项目开发中很少用到。
            /* 50% 50% 表示圆心坐标 */
            background-image: radial-gradient(50% 50%, red, blue);
浏览器私有前缀
  • 不同浏览器有不同的私有前缀,用来对实验性质的CSS属性加以标识
品牌 前缀
Chrome -webkit-
Firefox -moz-
IE、Edge -ms-
欧朋 -o-
            /* 去掉鼠标点击时候的蓝色框 */
            outline: none;
            /* 设置鼠标触碰时候样式为小手状 */
            cursor: pointer;
            /* 溢出的内容用滚动条显示 */
            overflow: scroll;
            overflow-y: scroll;
            /* 透明度设置为0,不是背景的透明度,而是整体的透明度 */
            opacity: 0;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容

  • html思维导图 css思维导图 01.vscode软件的使用 ctrl+ +- :调整视图大小 !+table ...
    SY阅读 541评论 0 0
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,314评论 2 66
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 2,420评论 0 20
  • 一、HTML和CSS 1. 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? IE: trident内核...
    Virtual66阅读 595评论 0 0
  • 课程目标: 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握C...
    桃花兰岛主阅读 535评论 0 1