我尝试创建一个响应式布局,如果屏幕大小允许,两个框相邻放置,如果屏幕大小不允许,则将它们放置在彼此的下方。如果两个框在彼此的下方,我希望它们以其父框为中心。我设置了一个jsfiddle来演示这个问题:
http://jsfiddle.net/leongersen/KsU23/
width: 50%;
min-width: 350px;
max-width: 100%;
尝试将“结果”窗格的大小调整到350 px以下。这些元素将与它们的父元素重叠。
我的问题:
为什么指定的max-width不被接受,即使它在min-width之后?
3条答案
按热度按时间9lowa7mx1#
基于CSS标准:
下面的算法描述了这两个属性如何影响“width”属性的使用值:
1.暂定使用的宽度是按照上面“计算宽度和边距”下的规则计算的(没有“最小宽度”和“最大宽度”)。
1.如果临时使用的宽度大于“max-width”,则再次应用上述规则,但这次使用“max-width”的计算值作为“width”的计算值。
1.如果结果宽度小于'min-width',则再次应用上述规则,但这次使用'min-width'的值作为'width'的计算值。
因此,min-width总是“赢”。在特定的CSS规则中,无论如何都没有优先级,所有值都是原子地应用的。优先级仅在不同规则都应用于同一元素时才会发生,即使如此,它也是基于优先级的,而不是考虑文件顺序。
monwx1rj2#
我知道,我迟到了......但一个确切的解决办法是:
kzipqqlq3#
也晚了,但我认为最好的解决方案是使用min()
会变成
这样你就不依赖于媒体查询,因为宽度是基于父元素的,媒体查询甚至可能不适合你的用例