- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我使用 flex 进行布局,但浏览器并未在元素之间平均分配宽度。
.parent {
display: flex;
width: 200px;
}
.btn1 {
flex: 1 1 auto;
}
<div class="parent">
<div class="btn1">
<button align="left" style="width:100%">Ok</button>
</div>
<button align="left" class="btn1">Cancel</button>
<div>
现在,我希望按钮将容器长度分成 50%/50%。
但事实并非如此。我尝试使用 flex: 1 1 auto
和 flex: 1 1 0
但没有成功。
我知道我可以直接使用 OK 按钮,它会解决我的问题,但在我的特定情况下,用 div 包装它很重要。
现在,据我了解,flex 应该能够平均分布宽度,这就是我的目标。
还有一件事,我注意到按钮内容似乎对宽度有影响,我想以某种方式忽略这种影响。
谢谢!
JSFiddle 示例: https://jsfiddle.net/edismutko/cvytLkyp/3/
最佳答案
flex-basis: auto
与 flex-basis: 0
您正在使用 flex: 1 1 auto
调整 flex 元素的大小。
但是,如果你想在元素之间平均分配空间,你需要使用 flex: 1 1 0
。
区别在于 flex-basis
组件。
使用 flex-basis: 0
,每个元素都被认为具有零宽度并且 flex-grow
在它们之间平均分配容器空间.这导致所有元素具有相同的长度。
使用 flex-basis: auto
,元素的大小被纳入 flex-grow
计算,容器空间按比例分配在元素之间。
因此,当您想要等长元素时,请使用 flex: 1 1 0
,这与 flex: 1
相同。
这里有更详细的解释:Make flex-grow expand items based on their original size
button
元素的默认规则浏览器默认将样式应用于元素。例如,Chrome 向 button
元素添加了内边距和边框宽度。
重置这些默认值。
现在你有两个等宽的 flex 元素。 (其他样式由您决定。)
.parent {
display: flex;
width: 200px;
}
.btn1 {
flex: 1;
}
button {
padding: 1px 0;
border-left-width: 0;
border-right-width: 0;
}
<div class="parent">
<div class="btn1">
<button align="left" style="width:100%">Ok</button>
</div>
<button align="left" class="btn1">Cancel</button>
<div>
box-sizing:border-box
其他需要考虑的是在 width
/flex-basis
计算中包括填充和边框长度。 Why are borders causing div to overflow container?
关于html - 创建等宽 flex 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44537759/
如果图像的宽度和高度相等,我如何添加类“相等”。 这是我的代码: var img = $('img', this); var width = img.width(); var height = img
任何人都可以告诉我涵盖大部分 unicode 字符的等宽字体吗?如果没有,那么包含大部分欧洲语言字符集的等宽字体? 最佳答案 我也在寻找单色空间、丰富的 Unicode 字体。到目前为止,我使用 De
我编写了一个程序来拍摄照片并创建 ASCII 表示(ASCII 艺术)。起初,我将 ASCII 字符串写入控制台,但现在我有了一个保存文本的 JLabel。但是,JLabel 输出是不规则的,不像控制
如果我有生成的列表 我要分成几列 like this是否有可能以某种方式让列与最宽的列一样宽 . 我有一个下拉导航,目前我在 上只有一个固定宽度s 但对于较小的导航元素,如“常见问题解答”,有很多
我对编程很陌生。 我试图让三个 col-md-4 具有相同的宽度。我假设如果在 HTML 中正确引用了 Bootstrap,则不需要 CSS。任何建议将不胜感激。 代码: /*NAV LOGO*/ .
是否可以像这样制作一个纯 CSS 解决方案: 元素有一些最小宽度。 它们应该动态增长以填充所有容器宽度,然后换行 列表中的所有元素都应具有相同的宽度。 现在是这样的: 这也是我希望它看起来像的样子(我
我正在尝试通过 flexbox 创建三行,其中将包含可变数量的列(顶部和底部的行将在数量上匹配)和一个中间列,它只是一个列。 由于列数是可变的,因此父级上没有设置宽度。 我正在努力让中间列的宽度与顶部
是否可以像这样制作一个纯 CSS 解决方案: 元素有一些最小宽度。 它们应该动态增长以填充所有容器宽度,然后换行 列表中的所有元素都应具有相同的宽度。 现在是这样的: 这也是我希望它看起来像的样子(我
我将对象动态添加到面板,然后添加到我的边框布局。我需要西部、中心和东部的大小都相等。这是我目前所拥有的: static int width = 300;//Screen width static in
我有一列 4 个元素。由于内容不同,所有元素的宽度都不同。使用 flexbox,有谁知道如何使所有元素与最大元素的宽度相同,同时保持它们全部居中? 这是我目前拥有的。 .container { d
我正在创建一个表单,我有 2 个并排的 div。这是我当前的 html: First name Middle n
如何并排排列 3 个 UIButton。我正在使用自动布局。我的要求是: 1.无论设备如何,它们都应该是等宽的 2.从 View 的开始到结束垂直占据 我尝试了不同的方法,我没能实现。是否可以通过界面
我在 flexbox 中使用 box-sizing: border-box; 具有不同的 border 厚度。我希望 flexbox 中的元素具有相等的宽度,但它会计算没有边框的元素的 width。
我在 flexbox 中使用 box-sizing: border-box; 具有不同的 border 厚度。我希望 flexbox 中的元素具有相等的宽度,但它会计算没有边框的元素的 width。
我是一名优秀的程序员,十分优秀!