CSS 无需重复的响应式布局 HTML
CSS responsive layout without repeating HTML
我正在尝试使用 3 div 创建一个 HTML-CSS 布局,我正在思考什么是编写最小 HTML 的最佳方式这将帮助我实现这样的目标:
我可以使用 flexbox 实现此目的,但前提是我为 div 重复 HTML 否。 3 并更改 order
属性 的 div 号。 2.
如果不重复任何 HTML 代码,即编写类似
的代码,最佳解决方案可能是什么
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
并且不重复任何 HTML 而是只编写最佳 CSS 以便它的行为方式与屏幕截图中的相同?
您可以使用 CSS Grid Template Areas
开个好头
请参阅下面的片段以匹配您的屏幕截图。
* {
box-sizing: border-box;
}
.container>div {
margin-bottom: 20px;
}
@media screen and (min-width: 992px) {
.container {
display: grid;
grid-template-areas: "one one two two" "three three two two" ". . two two";
gap: 20px;
height: 100vh;
grid-auto-rows: 1fr;
grid-auto-columns: 1fr;
}
.container>div {
margin-bottom: 0px;
}
.one {
grid-area: one;
}
.two {
grid-area: two;
}
.three {
grid-area: three;
}
}
/*For styling*/
.container>div {
border: 5px solid black;
border-radius: 20px;
padding: 20px;
}
<div class="container">
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
</div>
我正在尝试使用 3 div 创建一个 HTML-CSS 布局,我正在思考什么是编写最小 HTML 的最佳方式这将帮助我实现这样的目标:
我可以使用 flexbox 实现此目的,但前提是我为 div 重复 HTML 否。 3 并更改 order
属性 的 div 号。 2.
如果不重复任何 HTML 代码,即编写类似
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
并且不重复任何 HTML 而是只编写最佳 CSS 以便它的行为方式与屏幕截图中的相同?
您可以使用 CSS Grid Template Areas
开个好头请参阅下面的片段以匹配您的屏幕截图。
* {
box-sizing: border-box;
}
.container>div {
margin-bottom: 20px;
}
@media screen and (min-width: 992px) {
.container {
display: grid;
grid-template-areas: "one one two two" "three three two two" ". . two two";
gap: 20px;
height: 100vh;
grid-auto-rows: 1fr;
grid-auto-columns: 1fr;
}
.container>div {
margin-bottom: 0px;
}
.one {
grid-area: one;
}
.two {
grid-area: two;
}
.three {
grid-area: three;
}
}
/*For styling*/
.container>div {
border: 5px solid black;
border-radius: 20px;
padding: 20px;
}
<div class="container">
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
</div>