DIV容器的CSS-flex定位
我可以用这种方法归档所需的位置(参见代码中的注释并尝试不同的宽度值),还是必须使用断点?如果屏幕很小(=672)。但在后一种情况下,我希望有三个屏幕在一的下方居中,在两个屏幕的左侧(如果两个屏幕比一个屏幕高)。经过几个小时的摆弄,我迷路了DIV容器的CSS-flex定位,css,Css,我可以用这种方法归档所需的位置(参见代码中的注释并尝试不同的宽度值),还是必须使用断点?如果屏幕很小(=672)。但在后一种情况下,我希望有三个屏幕在一的下方居中,在两个屏幕的左侧(如果两个屏幕比一个屏幕高)。经过几个小时的摆弄,我迷路了 .outer{ /*宽度:632px;如果有两次断裂,则全部正确*/ /*宽度:633px;三个不应该在两个的左边,而是保持在居中的下方,就像宽度一样,所以这是我找到的一个解决方案,没有浮动,只是基于flex和媒体查询。我不喜欢的是: 我必须复制三个并使用d
.outer{
/*宽度:632px;如果有两次断裂,则全部正确*/
/*宽度:633px;三个不应该在两个的左边,而是保持在居中的下方,就像宽度一样,所以这是我找到的一个解决方案,没有浮动,只是基于flex和媒体查询。我不喜欢的是:
我必须复制三个并使用display:none/block
我不得不利用媒体查询
我必须手动将媒体查询的断点调整到flex容器的扭曲点
对于Firefox和Chrome来说,这种调整略有不同。它们不在同一点上包装,因此Firefox中有一个小的中间过渡
div{
边框:1px纯黑;
边缘:1米;
填充:1em;
}
.flexclass{
显示器:flex;
柔性包装:包装;
证明内容:中心;
}
.外部{
flex:0自动;
}
.二{
flex:10210px;
}
.三{
显示:块;
文本对齐:居中;
}
.3_1{
显示:无;
}
@仅介质屏幕和(最大宽度:400px){
.flexclass{
对齐项目:拉伸;
}
.一{
文本对齐:居中;
}
.三{
显示:无;
}
.3_1{
文本对齐:居中;
显示:块;
}
}
形象
按钮
TWO是一个长文本,可以换行并跨越多行。
按钮(复印件)
您的条件太具体了,您必须使用媒体查询。@ZohirSalak这就是我所说的使用断点的意思。我想知道我是否可以在不使用媒体查询的情况下将其存档,只使用CSS,因为这些宽度不是特定于屏幕的,而是任意的,即从本示例的实际内容宽度派生出来。查看,您可能会找到您需要的内容d在那里。@chriskirknielsen读得不错,谢谢,但并不能完全解决我的问题。如果我是你,我会对所有三个块显式使用flex-grow、flex-shrink和flex-basis。
<html>
<body>
<style>
div {
border: 1px solid black;
margin: 1em;
padding: 1em;
}
.flexclass {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.outer {
flex:0 0 auto;
}
.two {
flex:1 0 210px;
}
.three {
display:block;
text-align:center;
}
.three_1 {
display:none;
}
@media only screen and (max-width: 400px) {
.flexclass {
align-items: stretch;
}
.one {
text-align: center;
}
.three {
display:none;
}
.three_1 {
text-align:center;
display: block;
}
}
</style>
<div class="flexclass">
<div class="outer">
<div class="one">
IMAGE
</div>
<div class="three">
BUTTON
</div>
</div>
<div class="two">
TWO is a long text and may wrap and span many rows.
</div>
</div>
<div class="three_1">
BUTTON (copy)
</div>
</body>
</html>