zoukankan      html  css  js  c++  java
  • CSS 基本1

    HTML元素可以分为两种:

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

    两者的区别在于以下三点:

    块级元素会独占一行(即无法与其他元素显示在同一行内,除非你显示修改元素的 display 属性),而内联元素则都会在一行内显示。
    块级元素可以设置 width、height 属性,而内联元素设置无效。
    块级元素的 width 默认为 100%,而内联元素则是根据其自身的内容或子元素来决定其宽度。
    最常见块级元素应该是 div 吧,内联元素有 span、 a 、img 等等. 例如:

    .example {
         100px;
        height: 100px;
    }
    

    我们为 div 设置上面的样式,是有效果的,因为其是块级元素,而对 span 设置上面的样式是没用的。要想让 span 也可以改变宽高,可以通过设置 display: block; 来达到效果。当 display 的值设为 block 时,元素将以块级形式呈现;当 display 值设为 inline 时,元素将以内联形式呈现。

    若既想让元素在行内显示,又能设置宽高,可以设置:

    display: inline-block;
    

    inline-block 在我看来就是让元素对外呈内联元素,可以和其他元素共处与一行内;对内则让元素呈块级元素,可改变其宽高。

    CSS盒子模型

    盒子模型

    可以显而易见的看出盒模型由 4 部分组成。从内到外分别是:

    content -> padding -> border -> margin
    

    按理来说一个元素的宽度(高度以此类推)应该这样计算:

    总宽度 = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right
    

    但是不同浏览器(你没有猜错,就是那个与众不同的浏览器)对宽度的诠释不一样。符合 W3C 标准的浏览器认为一个元素的宽度只等于其 content 的宽度,其余都要额外算。于是你规定一个元素:

    .example {
         200px;
        padding: 10px;
        border: 5px solid #000;
        margin: 20px;
    }
    

    则他最终的宽度应为:

    宽度 = width(200px) + padding(10px * 2) + border(5px * 2) + margin(20px * 2) = 270px;
    

    而在 IE(低于IE9) 下,最终宽度为:

    宽度 = width(200px) + margin(20px * 2) = 240px;
    

    我个人觉得 IE 的更符合人类思维,毕竟 padding 叫内边距,边框算作额外的宽度也说不下去。W3C 最后为了解决这个问题,在 CSS3 中加了 box-sizing 这个属性。当我们设置 box-sizing: border-box; 时,border 和 padding 就被包含在了宽高之内,和 IE 之前的标准是一样的。所以,为了避免你同一份 css 在不同浏览器下表现不同,最好加上:

    *, *:before, *:after {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
    }
    

    文章内容基本来自:这里

  • 相关阅读:
    javaHTTP请求工具类-使用HttpURLConnection实现
    windows 无法启动redis 服务(位于本地计算机上)错误1053 服务没有及时响应启动或控制请求
    Redis 教程
    谢娜离开《快本》103天,暴露了芒果一姐的假相:有一种天真,叫错把平台当本事
    Api 在线文档目录:java8 中文、java11中文
    Linux关闭防火墙命令red hat/CentOs7
    Win10使用RedisDesktopManager工具连接虚拟机(CentOS 7)Redis
    如何win10 上访问虚拟机(linux)上redis方法
    汽车车牌JS正则表达式验证(含新能源车牌)
    vue 直接输入路由地址进入_vue地址栏直接输入路由无效问题
  • 原文地址:https://www.cnblogs.com/daihanlong/p/5471671.html
Copyright © 2011-2022 走看看