zoukankan      html  css  js  c++  java
  • 从零开始学习html(十一)CSS盒模型——上

    一、元素分类

    在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。

    常用的块状元素有:

    <div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

    常用的内联元素有:

    <a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>

    常用的内联块状元素有:

    <img>、<input>

    二、元素分类--块级元素

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     5 <title>内联块状元素</title>
     6 <style type="text/css">
     7 div,p{background:pink;}
     8 </style>
     9 </head>
    10 <body>
    11 <div>div1</div>
    12 <div>div2</div>
    13 <p>段落1段落1段落1段落1段落1</p>
    14 </body>
    15 </html>
    元素分类--块级元素

    什么是块级元素?在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是块级元素。

    设置display:block就是将元素显示为块级元素。如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点。

    a{display:block;}

    块级元素特点:

    1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)

    2、元素的高度、宽度、行高以及顶和底边距都可设置。

    3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

    来试一试:感受一下块级元素的特点

    在代码编辑器中输入各种块级标签,试一试他们的特点。

    三、元素分类--内联元素

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
     5 <title>行内元素标签</title>
     6 <style type="text/css">
     7 a,span,em{
     8     background:pink;/*设置a、span、em标签背景颜色都为粉色*/
     9 }
    10 </style>
    11 </head>
    12 <body>
    13 <a href="http://www.baidu.com">百度</a>
    14 <a href="http://www.imooc.com">慕课网</a>
    15 <span>33333</span>
    16 <span>44444</span><em>555555</em>
    17 </body>
    18 </html>
    元素分类--内联元素

    在html中,<span>、<a>、<label>、 <strong> 和<em>就是典型的内联元素(行内元素)(inline)元素。

    当然块状元素也可以通过代码display:inline将元素设置为内联元素。如下代码就是将块状元素div转换为内联元素,从而使 div 元素具有内联元素特点。

     div{
         display:inline;
     }
    
    ......
    
    <div>我要变成内联元素</div>

    内联元素特点:

    1、和其他元素都在一行上;

    2、元素的高度、宽度及顶部和底部边距不可设置;

    3、元素的宽度就是它包含的文字或图片的宽度,不可改变。

    内联元素之间有一个间距问题。

    来试一试:感受一下内联元素的特点

    在代码编辑器中输入各种内联元素标签,试一试他们的特点。

    行内元素之间会产生间隙bug问题的场景:
    1、当行内元素之间有“回车”、“tab”、“空格”时就会出现间隙。
    如下代码:
    <div>
    <a>1</a>
    <a>2</a>
    <span>33333</span>
    <span>44444</span>
    <em>555555</em>
    </div>

    解决方法:
    1、写在一行,之间不要有空格之类的符号。

    2、使用font-size:0
    div{font-size:0;}
    a,span,em{font-size:16px;}

    如果你想让div{font-size: 0;}起作用,请将行内元素包裹在里面,就想这样:
    <div>
    <a>我是链接</a>
    <span>我是行空间</span>
    </div>
     

    四、元素分类--内联块状元素

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
     5 <title>内联块状元素</title>
     6 <style type="text/css">
     7 a{
     8     
     9     width:20px;/*在默认情况下宽度不起作用*/
    10     height:20px;/*在默认情况下高度不起作用*/
    11     background:pink;/*设置背景颜色为粉色*/
    12     text-align:center; /*设置文本居中显示*/
    13 }
    14 </style>
    15 </head>
    16 <body>
    17 <a>1</a>
    18 <a>2</a>
    19 <a>3</a>
    20 <a>4</a>
    21 </body>
    22 </html>
    元素分类--内联块状元素

    内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,

    代码display:inline-block就是将元素设置为内联块状元素。(css2.1新增),<img>、<input>标签就是这种内联块状标签。

    inline-block 元素特点:

    1、和其他元素都在一行上;

    2、元素的高度、宽度、行高以及顶和底边距都可设置。

    来试试,仿分页页码设计

    在代码编辑器中大家可以看到我们为 a 元素设置了宽和高,但都没有起到作用,

    原因是a在默认的时候是内联元素,内联元素是不可以设置宽和高的。

    在编辑器的第8行,输入:

    display:inline-block;

    将块元素或行内元素转换为行块内元素:是为后面的课程做铺垫,

    你只要知道行内元素不能设置高宽,转换后可以设置就行了,块状元素不能在一行显示转换后可以在一行显示就行了。

    a标签变为内联块状元素后,居中设置的意思是,数字在每一个块内里面是居中显示的,而不是整个a标签在页面上居中

    inline:内联元素{
    1,不能设置width和height;
    2,多个行内元素排成一行,直到一行排不下,才会换新一行;
    3,只可以设置水平方向的边距,如:margin-left,margin-right,padding-left,padding-right.
    }
    block:块级元素{
    1,块级元素独占一行;
    2,可以设置width和height,默认宽度为一整行,除非单独设置宽度;
    3,可以设置margin和padding属性。
    }
    inline-block{
    简而言之就是让元素既可以在一行内显示,又可以设置宽高边距等。
    }

     


    块级元素默认占一整行 无论它的宽有没有一整行宽 没用完的空间不准其他元素使用

    属性:display:block;

    默认占一整行 默认宽度一整行 可以设置宽高 一行只有自己

     

    内联(行内)元素 定义的是一段内容(文本)这一行内没占用完的空间其他内联元素可以共同使用

    属性:display:inline;

    没法设置宽高 一行可以有多个 大小由内容决定

     

    内联块状元素(行内块级元素)

    属性:display:inline-block;

    可以设置宽高

    一行能有多个

    五、什么是盒模型

    视频课程

     
  • 相关阅读:
    SQLAlchemy技术文档(中文版)(全)
    Python 学习 第17篇:sqlalchemy 读写SQL Server数据库
    环境:Pycharm2019.1 + Win10 + Python3.7.3
    PyInstaller打包python脚本的一些心得
    Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)
    简单使用xlwt
    python xlwt写入excel操作
    Python中xlrd模块解析
    python使用pip离线安装库
    pip的基本使用和离线安装Python第三方库
  • 原文地址:https://www.cnblogs.com/guxinglang/p/6803214.html
Copyright © 2011-2022 走看看