CSS中控制元素水平布局的七个属性

2023-12-17 05:08:00

元素的水平方向的布局

元素在其父元素中水平方向的位置由一下几个属性共同决定

margin-left ? ? ? ?border-left ? ? ? ?padding-left ? ? ? ?width ? ? ? ?padding-right ? ? ? ?border-right ? ? ? ?margin-right

一个元素在其父元素中,水平布局必须要满足以下的等式

margin-left + border-left + padding-left + width + padding-right + border-right + margin-right

=父元素内容区的宽度(必须满足)

举例:子元素 inner七个元素的值如下

0 +0 + 0+ 200 + 0 + 0 + 0 =600 ??不成立

以上等式必须满足,如果相加结果等式不成立,则称为过度约束,则浏览器会让等式自动调整

——调整的情况

? ? ? ? 1:如果七个值中没有auto情况,则浏览器会调整margin-right值以使等式满足

? ? ? ? ? ? ? ? 0 +0 + 0+ 200 + 0 + 0 + 400 =600

? ? ? ? 2:这7个值中width,margin-left,margin-right,这三个值可以设置auto

? ? ? ? ? ? ? ? 如果有设置auto,则浏览器会自动调整auto的值,以使等式成立

? ? ? ? ? ? ? ? 0 +0 + 0+ auto + 0 + 0 + 0 =600 ? ? ? ? ? ?auto=600

? ? ? ? ? ? ? ? 0 +0 + 0+ auto + 0 + 0 + 200 =600 ? ? ? ? auto=400

? ? ? ? 3:如果将一个宽度和一个外边距设置为auto,则宽度会调整到最大

? ? ? ? 4:如果三个值都是auto,也只会调整宽度

? ? ? ? 5:如果将两个外边距设为auto,宽度固定,则两侧外边距会设置为相同的值,会使元素自动在父元素中居中,所以我们经常将左右外边距设置为auto

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .outer {
        width: 600px;
        height: 200px;
        border: 10px red solid;
      }
      .inner {
        width: 200px;
        margin-right: auto;
        margin-left: auto;
        /* margin: 0 auto; */
        height: 200px;
        background-color: sandybrown;
      }
    </style>
  </head>
  <body>
    <div class="outer">
      <div class="inner"></div>
    </div>
  </body>
</html>

文章来源:https://blog.csdn.net/csgojingyu/article/details/134869110
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。