在 css 中将最大宽度与最大宽度边距自动对齐
Align max-width aligned right with max-width margin auto in css
我正在尝试实现以下div之间的对齐效果。
蓝色框的宽度必须与红色框的宽度相同,而且自动右边距也是如此。
这样,如果调整屏幕大小,红色和蓝色将始终对齐。
在CSS中有什么方法可以实现吗?
我尝试在蓝色上应用 margin-left,还显示带有 grid-template-column 的网格:auto 1fr auto;但似乎它不起作用,因为我无法获得自动保证金。
我正在添加一个代码笔来帮助人们看到问题并进行测试。
https://codepen.io/Raikish/pen/BaWoexV
<div class="centered red"></div>
<div class="centered red"></div>
<div class="right blue"></div>
.centered {
max-width: 500px;
margin-left: auto;
margin-right: auto;
}
.right {
margin-left: auto;
max-width: 1000px
}
div {
margin-bottom: 10px;
height : 200px;
}
.red {
background-color: red;
}
.blue {
background-color: blue;
}
试试这个:
.right {
margin-left: calc(50% - 250px);
max-width: 1000px
}
如果您将大小设置为视口大小的一半 (50vw
) + 元素大小的一半 (=250px
),您将获得正确的最大宽度 .right
元素。
之后,您可以简单地对该元素使用 margin-left: auto
,就像您对 .centered
元素使用它一样。
https://codepen.io/thatkookooguy/pen/bGqVPEJ
body {
margin: 0;
padding: 0;
--width: 500px;
--half-width: calc(var(--width) / 2);
--height: 50px;
}
.centered {
max-width: var(--width);
margin-left: auto;
margin-right: auto;
}
.right {
margin-left: auto;
max-width: calc(50vw + var(--half-width));
}
.shared {
margin-bottom: 10px;
height: var(--height);
}
.red {
background-color: red;
}
.blue {
background-color: blue;
}
<div class="shared centered red"></div>
<div class="shared centered red"></div>
<div class="shared right blue"></div>
我正在尝试实现以下div之间的对齐效果。
蓝色框的宽度必须与红色框的宽度相同,而且自动右边距也是如此。 这样,如果调整屏幕大小,红色和蓝色将始终对齐。
在CSS中有什么方法可以实现吗?
我尝试在蓝色上应用 margin-left,还显示带有 grid-template-column 的网格:auto 1fr auto;但似乎它不起作用,因为我无法获得自动保证金。
我正在添加一个代码笔来帮助人们看到问题并进行测试。
https://codepen.io/Raikish/pen/BaWoexV
<div class="centered red"></div>
<div class="centered red"></div>
<div class="right blue"></div>
.centered {
max-width: 500px;
margin-left: auto;
margin-right: auto;
}
.right {
margin-left: auto;
max-width: 1000px
}
div {
margin-bottom: 10px;
height : 200px;
}
.red {
background-color: red;
}
.blue {
background-color: blue;
}
试试这个:
.right {
margin-left: calc(50% - 250px);
max-width: 1000px
}
如果您将大小设置为视口大小的一半 (50vw
) + 元素大小的一半 (=250px
),您将获得正确的最大宽度 .right
元素。
之后,您可以简单地对该元素使用 margin-left: auto
,就像您对 .centered
元素使用它一样。
https://codepen.io/thatkookooguy/pen/bGqVPEJ
body {
margin: 0;
padding: 0;
--width: 500px;
--half-width: calc(var(--width) / 2);
--height: 50px;
}
.centered {
max-width: var(--width);
margin-left: auto;
margin-right: auto;
}
.right {
margin-left: auto;
max-width: calc(50vw + var(--half-width));
}
.shared {
margin-bottom: 10px;
height: var(--height);
}
.red {
background-color: red;
}
.blue {
background-color: blue;
}
<div class="shared centered red"></div>
<div class="shared centered red"></div>
<div class="shared right blue"></div>