我有一个问题与自动宽度为一个div,我不想给予一个静态的宽度,我想它设置其宽度自动适应内容内.我试图创建一个div与3个列表,我做了列表(ul元素)flex - column - wrap我想的div拉伸,以适应列表,如果一个列表有多列自动.
这是我的代码片段:
* {
margin: 0;
padding: 0;
}
body {
position: relative;
height: 100vh;
width: 100%;
background-color: beige;
}
.link-list {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%);
background-color: aquamarine;
display: flex;
justify-content: space-around;
height: 200px;
max-width: 90%;
gap: 30px;
}
.inner-list {
width: fit-content;
display: flex;
flex-direction: column;
}
.inner-list ul {
list-style: none;
display: flex;
flex-direction: column;
flex-wrap: wrap;
height: 100%;
width: fit-content;
}
<!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>
<link rel="stylesheet" href="test.css">
</head>
<body>
<div class="list">
<div class="inner-list">
<h6 class="inner-list-title">Title</h6>
<ul>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
</ul>
</div>
<div class="inner-list">
<h6 class="inner-list-title">Title</h6>
<ul>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">sark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark social </a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">sark</a></li>
<li><a href="#">sark</a></li>
<li><a href="#">sark</a></li>
<li><a href="#">sark</a></li>
<li><a href="#">sark</a></li>
<li><a href="#">sark</a></li>
<li><a href="#">sark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">sark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark social </a></li>
</ul>
</div>
<div class="inner-list">
<h6 class="inner-list-title">Title</h6>
<ul>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
<li><a href="#">Dark</a></li>
</ul>
</div>
</div>
</body>
</html>
2条答案
按热度按时间6yoyoihd1#
Flexbox有一些已知的bug,其中一个在使用
flex-flow: column wrap
时发生。一些浏览器不会根据容器的内容正确调整容器的大小,这可能会导致不必要的溢出。要解决这个问题,您可以设置容器显示:挠曲和挠曲方向:具有静态高度的行,如下所示:使用柔性流时:列换行时,某些浏览器不能根据容器的内容正确调整容器的大小,并且会出现不必要的溢出。
参考:https://github.com/philipwalton/flexbugs#flexbug-14
变通方案
要解决
flex: column
行为,可以使用flex-flow: row wrap
(注意使用行而不是列)。要伪造列行为,可以更新容器的写入模式(并在项目上重置它),如下所示:并通过使用
flex-flow: row
wrap(注意行而不是列)解析flex: column
,并通过更新容器的写入模式(并在项上重置)伪造列行为。示例
这里有一个完整的示例代码和演示,应该适合你。
sqxo8psd2#
您可以使用
display: inline-table;
来代替flex和width: 30%;