美文网首页
css学习笔记

css学习笔记

作者: 骑着蜗牛去攻城 | 来源:发表于2021-12-06 22:45 被阅读0次

    一、基础选择器

    1. 标签选择器:标签名 { css属性名:属性值; }
    2. 类选择器:.类名 { css属性名:属性值; }
    3. id选择器:#id属性值 { css属性名:属性值; }
    4. 通配符选择器:* { css属性名:属性值; }

    二、字体和文本样式

    字体样式

    Ø 字体大小: font-size
    •数字+px
    Ø 字体粗细:font-weight
    •正常:normal 或 400
    • 加粗:bold 或 700
    Ø 字体样式:font-style
    • 正常:normal • 倾斜:italic
    Ø 字体系列:font-family
    • 具体字体1,具体字体2,具体字体3,具体字体4,...,字体系列
    Ø 字体连写:font
    • font : style weight size family;(顺序不能错,省略只能省略前两个)

    文本样式
    image.png
    text-align : center 能让那些元素水平居中?
    1. 文本
    2. span标签、a标签
    3. input标签、img标签
      Ø 注意点: 1. 如果需要让以上元素水平居中, text-align : center 需要给以上元素的 父元素 设置
    如果需要让div、p、h(大盒子)水平居中?

    可以给大盒子本身设置margin : 0 auto ; 实现

    行高

    属性名:line-height 作用:控制一行的上下行间距
    取值:line-height :数字+px/倍数(当前标签font-size的倍数)
    应用:

    1. 让单行文本垂直居中可以设置 line-height : 文字父元素高度
    2. 网页精准布局时,会设置 line-height : 1 可以取消上下间距

    三、选择器进阶

    1.后代选择器:空格

    作用:根据 HTML 标签的嵌套关系,选择父元素 后代中 满足条件的元素
    选择器语法:选择器1 选择器2 { css }

    2 .子代选择器:>

    作用:根据 HTML 标签的嵌套关系,选择父元素 子代中 满足条件的元素
    选择器语法:选择器1 > 选择器2 { css }

    3.并集选择器:,

    作用:同时选择多组标签,设置相同的样式
    选择器语法:选择器1 , 选择器2 { css }

    4.交集选择器:紧挨着

    作用:选中页面中 同时满足 多个选择器的标签
    选择器语法:选择器1选择器2 { css }

    5.emmet语法

    作用:通过简写语法,快速生成代码


    image.png
    总结:
    image.png

    6.hover伪类选择器

    作用:选中鼠标悬停在元素上的状态,设置样式
    选择器语法:选择器:hover { css }

    6.1 链接伪类选择器

    场景:常用于选中超链接的不同状态
    选择器语法:


    image.png

    如果需要同时实现以上四种伪类状态效果,需要按照 LVHA 顺序书写

    6.2焦点伪类选择器

    场景:用于选中元素获取焦点时状态,常用于表单控件
    选择器语法:

    input:focus {
    background-color:blue;
    

    效果: • 表单控件获取焦点时默认会显示外部轮廓线

    7.属性选择器

    场景:通过元素上的HTML属性来选择元素,常用于选择 input 标签
    选择器语法:


    image.png
    image.png

    四、背景相关

    1.背景颜色
    属性名:background-color(bgc)

    2.背景图片
    属性名:background-image(bgi):url('图片路径')

    3.背景平铺
    属性名:background-repeat(bgr)


    image.png

    4.背景位置
    属性名:background-position(bgp): 水平方向位置 垂直方向位置


    image.png

    注意:如果背景图的宽没有盒子宽,在设置水平方向为center的时候会将背景图水平居中放置,如果背景图的宽比盒子宽时,会将背景图水平方向的中心位置放置在盒子水平放心的中心位置,此时背景图的左右两边就会有一部分看不见。
    垂直方向同理。

    5.背景图片大小
    background-size:宽度 高度;


    image.png

    完整连写:


    image.png
    < br >

    五、元素显示模式

    1 块级元素

    属性:display:block
    显示特点:

    1. 独占一行(一行只能显示一个)
    2. 宽度默认是父元素的宽度,高度默认由内容撑开
    3. 可以设置宽高
      Ø 代表标签: • div、p、h系列、ul、li、dl、dt、dd、form、header、nav、footer……
    2.行内元素

    属性:display:inline
    显示特点:

    1. 一行可以显示多个
    2. 宽度和高度默认由内容撑开
    3. 不可以设置宽高
      Ø 代表标签: • a、span 、b、u、i、s、strong、ins、em、del……
    3.行内块元素

    属性:display:inline-block
    显示特点:

    1. 一行可以显示多个
    2. 可以设置宽高
      Ø 代表标签: • input、textarea、button、select……
      特殊情况:img标签有行内块元素特点,但是Chrome调试工具中显示结果是inline

    六、CSS 三大特性

    继承性、层叠性、优先级
    继承性

    特性:子元素有默认继承父元素样式的特点(子承父业)
    可以继承的常见属性:

    1. color
    2. font-style、font-weight、font-size、font-family
    3. text-indent、text-align
    4. line-height
    5. ……
    层叠性

    特性: 1. 给同一个标签设置不同的样式 → 此时样式会层叠叠加 → 会共同作用在标签上 2. 给同一个标签设置相同的样式 → 此时样式会层叠覆盖 → 最终写在最后的样式会生效

    优先级

    特性:不同选择器具有不同的优先级,优先级高的选择器样式会覆盖优先级低选择器样式
    优先级公式: 继承 < 通配符选择器 < 标签选择器 < 类选择器 < id选择器 <行内样式 < !important
    注意点: 1. !important写在属性值的后面,分号的前面!

    1. !important不能提升继承的优先级,只要是继承优先级最低!
    2. 实际开发中不建议使用 !important 。
    权重叠加计算
    image.png

    七、盒子模型

    CSS 中规定每个盒子分别由:内容区域(content)、内边距区域(padding)、边框区域(border)、外边距区域(margin )构成,这就是 盒子模型


    image.png
    边框(border)- 单个属性
    image.png

    边框(border)- 连写形式:
    border : 10px solid red;

    内边距(padding)- 取值
    image.png
    注意:

    在给盒子设置边框和内边距的时候会撑大盒子,如果不想撑大盒子,可以采用以下方法:
    1.手动内减
    2.自动内减 :给盒子设置属性 box-sizing : border-box ; 即可,浏览器会自动计算多余大小,自动在内容中减去

    外边距(margin)- 取值
    行内元素的margin和padding无效情况

    场景:给行内元素设置margin和padding时
    结果:

    1. 水平方向的margin和padding布局中有效!
    2. 垂直方向的margin和padding布局中无效!

    八、结构伪类选择器

    1-作用与优势:

    1. 作用:根据元素在HTML中的结构关系查找元素
    2. 优势:减少对于HTML中类的依赖,有利于保持代码整洁
    3. 场景:常用于查找某父级选择器中的子元素

    2- 选择器


    image.png

    注意点


    image.png

    九、伪元素

    元素:HTML 设置的标签
    伪元素:由 CSS 模拟出的标签效果


    image.png
    1. 必须设置content属性才能生效
    2. 伪元素默认是行内元素

    十、浮动

    属性名:float 属性值:left(左浮动) right(右浮动)
    作用:早期作用:图文环绕。 现在作用:用于布局,让垂直布局的盒子变成水平布局,如:一个在左,一个在右
    特点:

    1. 浮动元素会脱离标准流(简称:脱标),在标准流中不占位置 • 相当于从地面飘到了空中
    2. 浮动元素比标准流高半个级别,可以覆盖标准流中的元素
    3. 浮动找浮动,下一个浮动元素会在上一个浮动元素后面左右浮动
    4. 浮动元素会受到上面元素边界的影响
    5. 浮动元素有特殊的显示效果 • 一行可以显示多个 • 可以设置宽高
    注意点: • 浮动的元素不能通过text-align:center或者margin:0 auto,让浮动元素本身水平居中

    十一、清除浮动

    为什么要清除浮动:如果子元素浮动了,此时子元素不能撑开标准流的块级父元素(子元素浮动后脱标 → 不占位置),清除浮动可以使父元素有高度,从而不影响其他网页元素的布局。

    清除浮动的方法

    1.直接设置父元素高度
    • 优点:简单粗暴,方便
    • 缺点:有些布局中不能固定父元素高度。如:新闻列表、京东推荐模块

    2.额外标签法
    先在父元素内容的最后添加一个块级元素,然后给添加的块级元素设置 clear:both
    • 缺点:会在页面中添加额外的标签,会让页面的HTML结构变得复杂

    3.单伪元素清除法
    操作:用伪元素替代了额外标签

    .clearfix::after {
          content: '';
          display: block;
          clear: both;
          /* 补充代码:在网页中看不到伪元素 */
           height: 0;
          visibility: hidden; 
        }
    

    优点:项目中使用,直接给标签加类即可清除浮动

    4.双伪元素清除法

     .clearfix::before,
        .clearfix::after {
          content: '';
          display: table;
        }
        .clearfix::after {
          clear: both;
        }
    

    优点:项目中使用,直接给标签加类即可清除浮动

    5.给父元素设置overflow : hidden
    直接给父元素设置 overflow : hidden
    优点:方便

    十二、定位

    定位的作用:

    1. 可以让元素自由的摆放在网页的任意位置
    2. 一般用于 盒子之间的层叠情况
    1.静态定位

    介绍:静态定位是默认值,就是之前认识的标准流。
    代码:position:static

    2.相对定位

    介绍:自恋型定位,相对于自己之前的位置进行移动
    代码:position:relative
    特点:

    1. 需要配合方位属性实现移动
    2. 相对于自己原来位置进行移动
    3. 在页面中占位置 → 没有脱标
      应用场景:
    4. 配合绝对定位组CP(子绝父相)
    5. 用于小范围的移动
    3.绝对定位

    介绍:拼爹型定位,相对于非静态定位的父元素进行定位移动
    代码:position:absolute
    特点:

    1. 需要配合方位属性实现移动
    2. 默认相对于浏览器可视区域进行移动
    3. 在页面中不占位置 → 已经脱标
      应用场景:
    4. 配合绝对定位组CP(子绝父相)
    4.固定定位

    介绍:死心眼型定位,相对于浏览器进行定位移动
    代码:position:fixed
    特点:

    1. 需要配合方位属性实现移动
    2. 相对于浏览器可视区域进行移动
    3. 在页面中不占位置 → 已经脱标
      应用场景:
    4. 让盒子固定在屏幕中的某个位置

    5.定位总结:

    image.png
    绝对定位相对于谁移动?
    1. 祖先元素中没有定位 → 默认相对于浏览器进行移动
    2. 祖先元素中有定位 → 相对于 最近的 有定位 的祖先元素进行移动
    子绝父相水平垂直居中操作:
    1. 子绝父相
    2. left:50%;
    3. top:50%;
    4. transform:translate(-50%,-50%);
    元素层级问题

    不同布局方式元素的层级关系:
    •标准流 < 浮动 < 定位

    不同定位之间的层级关系:
    •相对、绝对、固定默认层级相同
    • 此时HTML中写在下面的元素层级更高,会覆盖上面的元素

    更改定位元素的层级

    属性名:z-index
    属性值:数字
    • 数字越大,层级越高

    十三、装饰

    1.垂直对齐方式

    作用:解决行内/行内块元素垂直对齐问题
    例如:当图片和文字在一行中显示时,其实底部不是对齐的


    image.png

    垂直对齐方法:
    属性名:vertical-align
    属性值:


    image.png
    (拓展)项目中 vertical-align 可以解决的问题
    1. 文本框和表单按钮无法对齐问题
    2. input和img无法对齐问题
    3. div中的文本框,文本框无法贴顶问题
    4. div不设高度由img标签撑开,此时img标签下面会存在额外间隙问题
    5. 使用line-height让img标签垂直居中问题
      注意点:
      • 学习浮动之后,不推荐使用行内块元素让div一行中显示,因为可能会出现垂直对齐问题
      • 推荐优先使用浮动完成效果

    2.光标类型

    场景:设置鼠标光标在元素上时显示的样式
    属性名:cursor
    常见属性值:


    image.png

    3.边框圆角

    场景:让盒子四个角变得圆润,增加页面细节,提升用户体验
    属性名:border-radius
    常见取值:数字+px 、百分比
    赋值规则:从左上角开始赋值,然后顺时针赋值,没有赋值的看对角!

    4.overflow溢出部分显示效果

    溢出部分:指的是盒子 内容部分 所超出盒子范围的区域
    场景:控制内容溢出部分的显示效果,如:显示、隐藏、滚动条……
    属性名:overflow
    常见属性值:


    image.png

    5.元素本身隐藏

    场景:让某元素本身在屏幕中不可见。如:鼠标:hover之后元素隐藏
    常见属性:

    1. visibility:hidden
    2. display:none

    区别:

    1. visibility:hidden 隐藏元素本身,并且在网页中 占位置
    2. display:none 隐藏元素本身,并且在网页中 不占位置

    注意点:
    • 开发中经常会通过 display属性完成元素的显示隐藏切换
    • display:none;(隐藏)、 display:block;(显示)

    (拓展)元素整体透明度

    场景:让某元素整体(包括内容)一起变透明
    属性名:opacity
    属性值:0~1之间的数字
    • 1:表示完全不透明
    • 0:表示完全透明
    注意点: • opacity会让元素整体透明,包括里面的内容,如:文字、子元素等……

    (拓展)边框合并

    场景:让相邻表格边框进行合并,得到细线边框效果
    代码:border-collapse:collapse;


    image.png

    用CSS画三角形技巧(面试题)

    image.png

    场景:在网页中展示出小三角形时,除了可以使用图片外,还可以使用代码完成。
    实现原理: • 利用盒子边框完成
    实现步骤:

    1. 设置一个盒子
    2. 设置四周不同颜色的边框
    3. 将盒子宽高设置为0,仅保留边框
    4. 得到四个三角形,选择其中一个后,其他三角形(边框)设置颜色为透明


      image.png

      拓展:通过调整不同边框的宽度,可以调整三角形的形态

    利用此原理还可作出类似效果


    image.png

    十四.样式补充

    1.精灵图

    场景:项目中将多张小图片,合并成一张大图片,这张大图片称之为精灵图
    优点:减少服务器发送次数,减轻服务器的压力,提高页面加载速度
    精灵图的使用步骤 :

    1. 创建一个盒子
    2. 通过PxCook量取小图片大小,将小图片的宽高设置给盒子
    3. 将精灵图设置为盒子的背景图片
    4. 通过PxCook测量小图片左上角坐标,分别取负值设置给盒子的background-position:x y

    3.文字阴影

    作用:给文字添加阴影效果,吸引用户注意
    属性名:text-shadow


    image.png

    阴影可以叠加设置,每组阴影取值之间以逗号隔开


    image.png

    4.盒子阴影

    作用:给盒子添加阴影效果,吸引用户注意,体现页面的制作细节
    属性名:box-shadow


    image.png

    5.过渡

    作用:让元素的样式慢慢的变化,常配合hover使用,增强网页交互体验
    属性名:transition


    image.png

    注意点:

    1. 过渡需要:默认状态 和 hover状态样式不同,才能有过渡效果
    2. transition属性给需要过渡的元素本身加
    3. transition属性设置在不同状态中,效果不同的 ① 给默认状态设置,鼠标移入移出都有过渡效果 ② 给hover状态设置,鼠标移入有过渡效果,移出没有过渡效果

    过度属性也是可以叠加设置,每组过度取值之间以逗号隔开


    image.png

    6.轮廓线outline

    给表单添加 outline: 0; 或者 outline: none; 样式之后,就可以去掉默认的蓝色边框。

    input {outline: none; }
    

    7.防止拖拽文本域 resize

    实际开发中,我们文本域右下角是不可以拖拽的

    textarea{ resize: none;}
    

    文本域也可以设置outline:none;

    8.溢出的文字省略号显示\

    1. 单行文本溢出显示省略号--必须满足三个条件
    /*1. 先强制一行内显示文本*/
     white-space: nowrap; ( 默认 normal 自动换行)
     /*2. 超出的部分隐藏*/
     overflow: hidden;
     /*3. 文字用省略号替代超出的部分*/
     text-overflow: ellipsis;
    
    1. 多行文本溢出显示省略号
      多行文本溢出显示省略号,有较大兼容性问题, 适合于webKit浏览器或移动端(移动端大部分是webkit内核)
    `overflow: hidden;
    text-overflow: ellipsis;
    /* 弹性伸缩盒子模型显示 */
    display: -webkit-box;
    /* 限制在一个块元素显示的文本的行数 */
    -webkit-line-clamp: 2;
    /* 设置或检索伸缩盒对象的子元素的排列方式 */
    -webkit-box-orient: vertical;
    

    相关文章

      网友评论

          本文标题:css学习笔记

          本文链接:https://www.haomeiwen.com/subject/ncjnxrtx.html