• 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;
    }
    

    文章内容基本来自:这里

  • 相关阅读:
    线程实现的两种方式
    webhook功能概述
    Linux 常用高频命令
    Mac安装Homebrew的正确姿势
    Mac 环境变量配置
    详解k8s零停机滚动发布微服务
    详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana)
    白话kubernetes的十万个为什么(持续更新中...)
    一个典型的kubernetes工作流程
    k8s实战之从私有仓库拉取镜像
  • 原文地址:https://www.cnblogs.com/daihanlong/p/5471671.html
Copyright © 2020-2023  润新知