我正试图摆脱引导程序,实际上是自己控制断点。在继续学习之前,我想知道我是否走在正确的轨道上。所以这样做是正确的:
HTML:
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="container">
<img src="banner.png"/>
<section id="left-column">
<p>This is the left column</p>
</section>
<aside id="right-column">
<p>This is the right column</p>
</aside>
</div>
<!-- /Container -->
</body>
</html>
CSS:
#container {
width: 960px;
margin: 0px auto;
}
#left-column {
width: 700px;
float: left;
background-color: red;
}
#right-column {
width: 260px;
float: left;
background-color: blue;
}
/* Tablet & Computer */
@media screen and (max-width:959px) {
#container {
width:100%;
}
#left-column {
width: 70%;
}
#right-column {
width: 30%;
}
img {
width: 100%
}
}
/* Phone */
@media screen and (max-width:640px) {
#left-column {
width: 100%;
}
#right-column {
width: 100%;
}
}
/* Stop Scaling */
@media screen and (max-width:320px) {
#container {
width: 320px;
}
答案 0 :(得分:2)
我不认为使用媒体查询有好/坏的方式,只是你想要的方式:)
Bootstrap通过提供不同的断点来应用于移动设备/平板电脑/桌面以及不同的类名来帮助您实现布局风格,但您可以通过使用您想要的断点而无需Bootstrap来自行完成。 (请参阅medias查询有关Bootstrap的信息:http://getbootstrap.com/css/#grid-media-queries)
所以你的方法是正确的。请关闭最后一个括号:
/* Stop Scaling */
@media screen and (max-width:320px) {
#container {
width: 320px;
}
}
此外,我更喜欢使用移动宽度(%),因为它将占据屏幕的整个宽度。在你上一次媒体查询的情况下,选择的宽度是没用的(我不知道很多设备的宽度是320px)
请参阅此处用于帮助您选择媒体查询的常用设备: http://mydevice.io/devices/
答案 1 :(得分:1)
你可以摆脱Bootstrap但你可以在断点中使用他们的方法
是
超小型设备电话 <768px
小型设备平板电脑 ≥768px
中型设备桌面 ≥992px
大型设备桌面 ≥1200px
您需要为列指定网格系统,而不是硬编码列宽度
喜欢
.col1{
width:8.33333333%
}
.col2{
width:16.66666667%
}
.col3{
width:25%
}
.col4{
width:33.33333333%
}
.col5{
width:14.666667%
}
.col6{
width:50%
}
.col7{
width:58.33333333%
}
.col8{
width:66.6666667%
}
.col9{
width:75%
}
.col10{
width:83.33333333%
}
.col11{
width:91.6666666%
}
.col12{
width:100%
}
最后,您必须为列定义行,以避免因浮动列而导致高度冲突
.row{
margin-left:-15px;
margin-right:-15px;
}
.row{:after{
content:'';
display:block;
clear:both
}
.col{ //general properties of columns
padding:15px;
float:left;
}
更新:如果您没有通过row
清除clear:both;
课程后的花车,您会发现列容器的高度始终为0,即使列有内容这是因为float从容器的高度中减去元素的高度
您还需要提供margin-left:-15px;
和margin-right:-15px;
,以使该行的第一列和最后一列与页面内容保持一致
答案 2 :(得分:0)
你可以这样做,但我建议使用less或sass,否则会非常乏味(你也应该使用autoprefixer!)。从技术上讲,你应该设置类而不是id,因为它的破坏性较小。您可能希望添加最小宽度,并且您应该验证由于四舍五入问题,70%+ 30%不能超过100%。
Flexbox是一种新的/酷炫的网格方式,例如, https://css-tricks.com/snippets/css/a-guide-to-flexbox/,但直到我们在css中获得正确的网格布局(例如https://css-tricks.com/snippets/css/complete-guide-grid/)。