/* 01 */
@media (min-width: 0) {
/* this is the same as not using a media query... */
.main-content {
width: 100%;
float: left;
}
.side-bar {
width: 100%;
float: left
}
}
/* 2 */
@media (min-width: 600px) and (orientation:landscape) {
.main-content {
width: 70%;
float: left;
}
.side-bar {
width: 30%;
float: left
}
}
.parent {
display: flex;
flex-direction: column;
}
@media (min-width: 600px) and (orientation:landscape) {
.parent {
flex-direction: row;
}
.child-1 {
min-width: 260px; /* or flex-basis: xx - try them both */
}
.child-2 {
flex-basis: 100%; /* "if at all possible... please try to be this size..." */
}
}
.main-content {
/* Default for when the height is greater than the width of the screen*/
width: var(--content-width-small);
}
@media screen and (min-width: 100vh) {
/* The width is greater than the height */
.main-content {
width: var(--content-width-wide);
}
}
4条答案
按热度按时间ego6inou1#
我相信你现在已经有了,但这里有一个例子给其他路过的人,就像前面的人说的,人们应该花时间读一读这个:http://www.w3.org/TR/css3-mediaqueries/
这两个不会单独做到这一点,你需要一些组合。我想我们可以假设你的侧边栏将是一个障碍,在屏幕小于600px宽。
HERE is a jsfiddle-请注意框大小:边框;用于填充问题。
2017更新
我想现在大多数人都会使用flexbox:https://jsfiddle.net/sheriffderek/egxcgyyd/
mzsu5hc02#
我知道这是一个老问题,但我使用的解决方案是:
这是更直观,工作得很好(至少对我来说,因为我想有一个图像的尺寸是基于屏幕的高度大于宽度,反之亦然)。
qqrboqgw3#
Media Queries可能会成为您在支持它的现代浏览器中的解决方案。您可以从这里获取文档的副本:
http://www.w3.org/TR/css3-mediaqueries/
但您可能会发现以下教程很有用(Google for:介质查询教程):
http://webdesignerwall.com/tutorials/css3-media-queries
一旦你学会了一些基本的操作,比如在屏幕福尔斯特定分辨率时隐藏元素:
希望这个有用。
bvn4nwqk4#
如前所述,媒体质询是必经之路。
更具体地说,如果您试图检测视区的高度是否大于宽度 (高度〉宽度),您可以查看aspect ratio文档。
例如,假设您希望根据视区的高或宽隐藏或显示不同的标题,由于
1/1
的长宽比是一个完美的正方形,您可以使用min-aspect-ratio
和max-aspect-ratio
的组合来检测何时发生"高"和"宽"之间的变化。