Here is an example:@H_404_3@
CSS@H_404_3@
.body { height: 100%; width: 100%; } .left { background-color: red; width: 70%; height: 100%; display: inline-block; } .right { background-color: yellow; display:inline-block; width: 30%; height: 100%; } }
HTML@H_404_3@
<body> <div class="wrapper"> <div class="left"> d </div> <div class="right"> d </div> </div> </body>
解决方法
<div class="left"> <!-- content --> </div><div class="right"> <!-- content --> </div>
通过并排放置关闭和打开标签,我们删除了换行符,空格等.不幸的是,它有点难看,并且不适合通过细读眼睛来快速辨别.@H_404_3@
另一种方法是使用HTML注释删除意外的空格:@H_404_3@
<div class="left"> d </div><!-- --><div class="right"> d </div>
与第一个选项一样,这也使代码稍微混乱,并且意味着每组连续列必须由奇怪且不合适的HTML注释分隔.@H_404_3@
上述两种方法都应该给您一些可维护性问题.如果你进入一个项目并注意到这样的标记,你可能会尝试改进格式,删除看似毫无意义的注释,并总体上尝试提高代码可读性.@H_404_3@
<style> .wrapper { overflow: auto; } .column { float: left; display: block; } .left { width: 70%; } .right { width: 30%; } </style> <div class="wrapper"> <div class="left column"> d </div> <div class="right column"> d </div> </div>
以上使用浮动块元素.块元素不允许任何一方都有空格,从而消除了我们讨厌的问题.但浮动元素会隐式地弄乱其父容器的布局.为了确保它们保留在父容器中,我们设置父级的overflow属性.@H_404_3@
此标记已在您的解决方案中,并且不包含可能在以后被误解的任何约定或方法.@H_404_3@
对上述方法的最后一点警告;您应该确保元素的总宽度不受填充和边框的影响.在现代浏览器中,这通常不是问题,但对于遗留支持,在这些元素上设置Box-sizing属性是明智的:@H_404_3@
.wrapper,.column { Box-sizing: border-Box; }
文档:http://docs.webplatform.org/wiki/css/properties/box-sizing@H_404_3@
最后一个解决方案是避免浮动,内联块以及完全随附的所有内容.现代浏览器支持Flexbox,专门针对此问题而构建.@H_404_3@
使用您当前的标记,以下CSS将为您提供两列:@H_404_3@
.wrapper { display: flex; } .column { flex: 1; } .left { flex-basis: 70%; background: red; } .right { background: blue; }
此语法需要对支持前缀属性的早期版本的Chrome以及支持标准草案实现的Internet Explorer 10进行一些调整.@H_404_3@
你可以在这里看到一个演示:http://codepen.io/anon/pen/skIeg@H_404_3@