06-CSS元素类型

元素类型的分类

在网页布局中有的标签可以直接设置宽高大小,但有的标签不可以直接设置,因为每个标签都有自己的类型。在css中根据显示分类可以分为:块级元素、行内元素、可变元素。

块元素、行内元素、行内块元素

可变元素根据上下文语境决定该元素为块元素或行内元素,因此现在的css元素将可变元素考虑为行内块元素

(如果提问两种元素类型,回答块元素和行内元素即可)

块元素

别名:块级元素、块状元素

  1. 常见的块元素:div、h、p、ul>li
  2. 块元素的特点
    • 块元素可以直接设置宽高大小,通常是以一个盒子的形状在浏览器中显示的
    • 块元素默认独占一行,后面的空间也是属于当前元素的
    • 作用:块元素可以嵌套行内元素或者其他元素作为盒子实现网页布局

行内元素

别名:内联元素

  1. 常见的行内元素:a、span、i、em、b、strong
  2. 行内元素的特点
    • 不可以直接设置宽高大小,元素的大小是由文本内容决定的
    • 行内元素默认在一行内逐个显示
    • 注意:行内元素在设置margin-top/margin-bottom会失效(存在Bug)

行内块元素

可以理解为是从行内元素中分出来的一种元素类型。

  1. 常见的行内块元素:img、input
  2. 行内块元素特点
    • 可以直接设置宽高大小 => 拥有块元素的特点
    • 在一行内逐个显示 => 拥有行内元素的特点
    • 同时拥有两个元素类型的特点叫做行内块元素
  3. 问题:所有的行内块元素都是以基线对齐的(布局问题)
  4. 解决:使用css属性 vertical-align:top/bottom/middle
    • 行高line-height:本质是基线对齐


      4.png

常见的置换元素与非置换元素有哪些?

置换元素概念:

  1. 有自己的初始宽高大小

  2. 可以跟随标签内的属性和属性值的改变而有不同的样式

常见置换元素:img、input

非置换元素:其他标签

元素类型的转换属性

  1. 属性:display(控制、显示方式)

  2. 属性值:官方提供了19个

    • block 块,可以将其他元素转换为块元素,使其拥有块元素的特点
    • inline 行内,可以将其他元素转换为行内元素,使其具有行内元素的特点
    • inline-block 行内块元素,可以将其他元素转换成行内块元素,使其具有行内块元素的特点
    • 【了解】list-item 列表项目,本质是块元素
    • 【重点】none 表示隐藏/删除元素(不占位置了)
      • list-style:none 清除列表的默认样式
      • text-decoration:none 清除a标签的默认下划线
      • border:none 清除边框
      • background:none 清除背景
      • outline:none 点击表单控件外面的边框
  3. 拓展:关于浮动的设置

    • 浮动可以让元素脱离文档流,改变元素的排列位置(垂直 => 水平)
    • 改变元素类型,改为行内块元素
  4. 【重点】none和block之间的应用(表示显示和隐藏)

改变鼠标样式cursor -- 障眼法

pointer 手型;help 问号;wait 等待沙漏

/* 改变鼠标的样式 */
cursor: pointer;

动态伪类选择器

可以改变元素的样式

a:link{color: red;} /* 未访问的链接状态,必须给a */
a:visited{color:green} /* 已访问的链接状态,必须给a */
a:hover{color:blue} /* 鼠标滑过链接状态,可以随便给 */
a:active{color:yellow} /* 鼠标按下去时的状态,必须给a */

注意点:伪类选择器有常见的四个,如果四个要使用的话必须按照当前的顺序去写,其中最为重要的是hover选择器。

hover选择器

表示当鼠标移入时候可以改变的一种状态

  1. hover改变自己的状态 => 自己的选择器:hover{}

    div:hover{
        color:red;
    }
    
  2. hover改变子级状态 => 父级选择器:hover 子级选择器{}

    <div>
        A
        <p>
            B
        </p>
    </div>
    
    div:hover p{
     color:green;
     font-size:30px;
    }
    

拓展 -- hover不常见的情况

  1. 通过自己改变相邻一个兄弟 +

    <h1>AA</h1>
    <h2>BB</h2>
    <h2>CC</h2>
    
    h1:hover+h2{
        color:green;
    }
    
  2. 通过自己改变相邻所有兄弟 ~

    h1:hover~h2{
        color:red;
    }
    

案例1:鼠标移出移入控制二维码的显示与隐藏
https://www.jianshu.com/p/bfa55e6ae057
案例2:中英文切换导航的实现
https://www.jianshu.com/p/437ebc0409e5
案例3:电商页面商品的聚焦效果展示
https://www.jianshu.com/p/a25ddb494c1c

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容