CSS 如何使灵活的项目无论其内容如何都有相同的长度

CSS 如何使灵活的项目无论其内容如何都有相同的长度

让我们试着了解一下flex属性。Flex是一个简明的属性,它为柔性元素的长度设定了条件,即是否允许它根据其内容的多少或视口的宽度来调整自己。

Flex属性

Flex属性的组成属性规定如下

Flex-grow

该属性设置了在flex-container中剩余的所有空间中分配给该项目的空间。换句话说,它设置了项目的主要尺寸是否会被允许超越增长。这个属性的值是一个整数。

  • 空白空间的数量等于柔性容器的大小减去所有柔性元素的大小之和。如果所有的兄弟项目都有相同的flex增长因子,那么它们将获得相同的剩余空间量;否则,它将根据各种flex增长因子设定的比例进行分配

  • 此属性的初始值为0。它适用于flexbox中的所有项目,也包括伪元素。它在本质上是不可继承的,并且有一个数字作为其动画类型。

Flex-shrink

正如flex-grow属性允许flexbox增长一样,该属性允许flexitems在内容无法容纳到指定空间的情况下收缩。

  • 该属性的初始值为1,而不是0。它也会被应用于flexbox中的所有项目,也包括伪元素。就像flex-grow一样,这个属性在本质上也是不可继承的,并且有一个数字作为其动画类型。

Flex-base

该属性用于指定容器最初的主要尺寸是什么。除非与box-sizing另有规定,否则它决定了内容框的大小。

  • 它可以有两个可能的值。第一个是 “content”,它将根据内容的数量而改变,第二个值是一个宽度值,它将是一个绝对值或一个百分比。你也可以使用auto关键字作为宽度。

使用flex属性

正如已经讨论过的,flex是一个速记属性。这就是为什么我们可以通过指定一个、两个或全部三个值来使用flex属性。

  • 当你只指定一个属性值时,它可以是flex-grow / flex-basis的有效值,也可以是一个全局关键字值。

  • 当使用两个值时,第一个值将被作为flex-grow的值,之后的值将是flex-shrink或flex-basis的值。

  • 当使用三个值时,第一个值将用于flex-grow,第二个值将作为flex-shrink的值,最后一个值将用于flex-basis。

例子

下面是一个在CSS中使用flex属性的例子。

<!DOCTYPE html>
<html>
<head>
   <title>CSS flex Property</title>
   <style>
      #Target {
         width: 500px;
         height: 400px;
         border: 1px dashed rgb(8, 0, 0);
         display: flex;
      }
      #Target div {
         flex: 1 0 auto;
      }
      .Target1 {
         background-color: rgb(193, 169, 169);
      }
      .Target2 {
         background-color: rgb(99, 121, 99);
      }
      .Target3 {
         background-color: rgb(221, 233, 221);
      }
   </style>
</head>
<body>
   <h2>Example of using a flex property in CSS</h2>
   <div id="Target">
      <div class="Target1">Lorem ipsum dolor sit amet.</div>
      <div class="Target2">Lorem, ipsum dolor.</div>
      <div class="Target3">Lorem, ipsum.</div>
   </div>
</body>
</html>

例子

这个例子使用了CSS中的flex grow属性

<!DOCTYPE html>
<html>
<head>
   <title>CSS flex Property</title>
   <style>
      .FlexContainer {
         padding: 0;
         margin: 0;
         list-style: none;
         -ms-box-orient: horizontal;
         display: -webkit-box;
         display: -moz-box;
         display: -ms-flexbox;
         display: -moz-flex;
         display: -webkit-flex;
         display: flex;
      }
      .FlexItem {
         background-color: blueviolet;
         padding: 10px;
         border: 5px dashed red;
         color: aliceblue;
         font-weight: bold;
         font-size: 2em;
         text-align: center;
      }
      .Flex1 {
         flex: 1 1 20em;
      }
      .Flex2 {
         flex: 2 2 20em;
      }
   </style>
</head>
<body>
   <ul class="FlexContainer">
      <li class="FlexItem Flex1">This is an example of using flexbox 1</li>
      <li class="FlexItem Flex2">This is an exmaple of using flexbox 2</li>
   </ul>
</body>
</html>

对相同长度的项目使用flex属性

正如我们看到的,我们可以使用flex属性来控制灵活元素的大小。因此,如果我们必须使所有的柔性项目具有相同的长度,我们将利用这个属性。

例子

下面的例子使用CSS中的flex属性来创建相同长度的flexbox项。

<!DOCTYPE html>
<html>
<head>
   <style>
      center {
         margin: 75px;
         color: rgb(10, 143, 10);
         font-size: 48px;
      }
      .FlexContainer {
         display: flex;
         border: dashed 3px black;
         width: 500px;
         height: 400px;
      }
      .FlexContainer div {
         flex: 1;
      }
      .FlexItem1 {
         background-color: rgb(246, 227, 192);
      }
      .FlexItem2 {
         background-color: rgb(197, 197, 197);
      }
      .FlexItem3 {
         background-color: rgb(198, 224, 224);
      }
   </style>
</head>
<body>
   <center>
      <div class="FlexContainer">
         <div class="FlexItem1">Lorem, ipsum dolor.</div>
         <div class="FlexItem2">Lorem, ipsum dolor.</div>
         <div class="FlexItem3">Lorem, ipsum dolor.</div>
      </div>
   </center>
</body>
</html>

结论

总之,CSS通过使用一些属性,如 “width”、”max-width “和 “flex”,使灵活的项目无论其内容如何都是一样的长度。这种灵活性在设计响应式网站时非常有用,因为这些网站需要根据浏览设备的不同来调整尺寸。通过使用这些属性,设计师可以创造出无论在什么设备上浏览都很好看的布局。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

CSS 教程