gpt4 book ai didi

html - 我怎样才能让一堆 div 堆叠在它们父级的网格中?

转载 作者:行者123 更新时间:2023-11-28 18:00:53 30 4
gpt4 key购买 nike

我正在尝试制作一个 2 行可滚动界面。我发现我真的很不擅长解释它,但它应该是这样的。 http://valeness.tk

当我添加更多元素元素时,问题就来了,它们打破了高度边界并开始堆叠成 3 行。我希望它保持 2 行并使用 overflow-x: scroll 属性,以便它可以左右滚动。

HTML

<!DOCTYPE html>
<HTML>
<head>
<meta charset="UTF-8">
<title>Accomadere Vive</title>
<link rel="stylesheet" type="text/css" href="assets/style.css">

</head>

<body>

<div class="top">
<div class="top-left">
<a href="#" class="nav" id="active">HOME</a>
<a href="#" class="nav" id="inactive">ABOUT ME</a>
<a href="#" class="nav" id="inactive">PROJECTS</a>
<a href="#" class="nav" id="inactive">BLOG</a>
</div>
<div class="top-right">
<div class="prof">James Horton</div>
</div>

</div>

<div class="main">

<div class="item-container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>

</body>
</HTML>

CSS

body
{
background-color: #090909;
}

div.top
{
width: 99%;
height: 110px;
padding: 5px;
/*border: 1px solid blue;*/
}

div.top-left
{
position: relative;
height: 100px;
width: 40%;
left: 5px;
margin-top: 5px;
margin-bottom: 5px;
/*border: 1px solid red;*/
}

div.prof
{
position: relative;
height: 30px;
width: 150px;
line-height: 30px;
text-indent: 5px;
font-family: Century Gothic, sans-serif;
color: #00ff00;
background-color: #111111;
font-size: 18px;
font-style: italic;
}

div.prof:after
{
content: '';
width: 30px;
height: 30px;
position: absolute;
margin-left: -150px;
background-image: url('avatar.png');
background-size: 30px 30px;
background-color: #111111;
border-left: 4px solid #00ff00;
}

div.top-right
{
position: relative;
float: right;
height: 100px;
width: 40%;
right: 5px;
margin-top: -107px;
/*border: 1px solid red;*/
}

a#active.nav
{
font-family: Century Gothic, sans-serif;
color: #00ff00;
font-size: 18px;
padding-left: 20px;
padding-right: 15px;
text-decoration: none;
}

a#inactive.nav
{
font-family: Century Gothic, sans-serif;
color: #999999;
font-size: 18px;
padding-left: 20px;
padding-right: 15px;
text-decoration: none;
-o-transition: all .5s;
-moz-transition: all .5s;
-webkit-transition: all .5s;
transition: all .5s;
}

a#inactive.nav:hover
{
font-family: Century Gothic, sans-serif;
color: #FFFFFF;
font-size: 18px;
padding-left: 20px;
padding-right: 15px;
text-decoration: none;
-o-transition: all .5s;
-moz-transition: all .5s;
-webkit-transition: all .5s;
transition: all .5s;
}

div.main
{
display: block;
position: absolute;
height: 74%;
width: 96%;
padding: 15px;
border: 1px solid green;
}

div.item-container
{
width: 85%;
height: 400px;
left: 0;
right: 0;
margin-left: auto;
margin-right: auto;
border: 1px solid blue;
}

div.item
{
width: 300px;
height: 170px;
margin-left: 15px;
margin-top: 15px;
transform-origin: 50% 50%;
background-color: #202020;
float: left;
}

有问题的元素是 div.item 和 div.item-container。

最佳答案

如果您正在考虑制作可视化表格,那么我建议您使用 CSS tables .与 HTML 表格不同,它们纯粹是可视化的,但是您需要具有适当的 HTML 结构。如果您需要将它们视为表格,我建议除了一组简单的 div 之外还有一些语义。也许它是两个不同的列表 - 因此您可以在语义上将它们标记为 ul,然后应用表格样式。

为了适应所做的更改以使其正常工作,我对 View 进行了更改,您可以 see in this fiddle .

但是,它的要点是在 HTML 中添加另一个层来捕获“行”:

<div class="item-container">
<div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>

</div>
<div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>

然后为每个样式设置样式:

.item-container > * {
display:table-row;
}

div.item-container
{
/* Identical attributes ignored */
display: table;
}

div.item 进行了一些重大更改以使其具有相同的样式,包括添加边框样式(表格单元格没有边距)和添加最小宽度,否则单元格随 table 缩小。

div.item
{
min-width:300px;
border:15px solid #090909;
background-color: #202020;
display:table-cell;
}

然后最后,将正确的 overflow 添加到正确的元素(我会让你选择它应该去哪里,但在 div.main 上的 fiddle 中:

overflow:auto;

关于html - 我怎样才能让一堆 div 堆叠在它们父级的网格中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20461423/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com