我的页面宽50/50。左半部分具有六个div的行。条件:
跨浏览器兼容最新版本的chrome和firefox。
<div class="column" style="margin-left: 20px; border: 1px black solid; height: 500px">
Other stuff
The main trick here is to make the div
a square.
Normally one set a width
, the height
to 0
and a padding
that equals to
the width
.square {
height: 0;
width: 33%;
padding-bottom: 33%;
background: lightgray;
}
<div class="square">
<div>
Content
</div>
</div>
现在,当我们html" target="_blank">添加时display:flex
,我们不能使用padding
百分比(Firefox错误),并且由于我们使用,所以我们也不能将高度与百分比一起使用height: 0
。
为了克服这些问题,何时可以使用视口单位vw代替,与此同时我们也可以使用height而不是padding保持平方。
因此calc((100% / 6) - 10px)
;,我们没有使用这样的视口单位设置像这样的宽度,而是使用约10像素宽的装订线平均分布6个项目,而是使用视口单位calc(( (50vw - 65px) / 6) - 10px)
;
的50vw是浏览器宽度的一半,则65px是的总和container的左/右填充,50px加上15px所述沟槽之间columns。
这也使我们可以跳过多余的flex-item-inner
元素,跳过position: absolute
在content
元素上的使用,并且由于我们没有在上使用百分比作为高度,因此flex-item
我们可以这样做来使内容居中
.flex-item-content {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
最终结果是这样
堆栈片段
.container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding: 25px;
border: 2px red solid;
}
.column {
flex-basis: calc(50% - 15px);
}
.flex-container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.flex-item {
position: relative;
flex-basis: calc(( (50vw - 65px) / 6) - 10px);
height: calc(( (50vw - 65px) / 6) - 10px);
background: white;
border: 1px solid red;
overflow: hidden;
}
.flex-item-content {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.flex-item:last-child .flex-item-content {
color: green;
}
.column .other {
padding: 15px;
border: 1px solid black;
padding-bottom: 35px;
}
.column.left .other {
margin-top: 10px;
}
.column.right .other:nth-child(n+2) {
margin-top: 10px;
}
@media (max-width: 768px) {
.flex-item {
flex-basis: calc(( (50vw - 65px) / 3) - 10px);
height: calc(( (50vw - 65px) / 3) - 10px);
}
.flex-item:nth-child(n+4) {
margin-top: 12px;
}
}
@media (max-width: 480px) {
.flex-item {
flex-basis: calc(( (50vw - 65px) / 2) - 10px);
height: calc(( (50vw - 65px) / 2) - 10px);
}
.flex-item:nth-child(n+3) {
margin-top: 15px;
}
}
<div class="container">
<div class="column left">
<div class="flex-container">
<div class="flex-item">
<div class="flex-item-content">
L1
</div>
</div>
<div class="flex-item">
<div class="flex-item-content">
L2
</div>
</div>
<div class="flex-item">
<div class="flex-item-content">
L3
</div>
</div>
<div class="flex-item">
<div class="flex-item-content">
L4
</div>
</div>
<div class="flex-item">
<div class="flex-item-content">
L5<br>L5
</div>
</div>
<div class="flex-item">
<div class="flex-item-content">
L6
</div>
</div>
</div>
<div class="other">
Other stuff - left
</div>
</div>
<div class="column right">
<div class="other">
Other stuff - right
</div>
<div class="other">
Other stuff - right
</div>
</div>
</div>
浏览器兼容 主流浏览器都兼容 HTML5 的新标签,对于 IE8 及以下版本不认识 HTML5的新元素,可以使用 JavaScript 创建一个没用的元素来解决,例如: <script> document.createElement("header"); </script> 也可以使用 shiv 来解决兼容性问题,详情可参考 HTML5 Shiv
问题内容: 我已经阅读了许多关于此的文章,但没有一个有任何明确的答案。这是我的代码: 现在,setAttribute()方法(带有mozilla注释)在mozilla中可以正常工作,但前提是该方法位于其上方的行之后。因此,换句话说,它似乎默认为最后设置的那个。.onclick方法(带有ie注释)在两种情况下均不起作用,我使用不正确吗? 无论哪种方式,我都找不到在IE中完全实现此功能的方式,更不用说
本文向大家介绍bootstrap3 兼容IE8浏览器!,包括了bootstrap3 兼容IE8浏览器!的使用技巧和注意事项,需要的朋友参考一下 近期在使用bootstrap这个优秀的前端框架,这个框架非常强大,框架里面有下拉菜单、按钮组、按钮下拉菜单、导航、导航条、面包屑、分页、排版、缩略图、警告对话框、进度条、媒体对象等,bootstrap都已经预先定义好了,当我们制作网页上,只需直
概览 本章描述了IE在处理自定义的HTML属性和标签时的一些独特之处。如果你要让你的AngularJS应用兼容IE8和IE8以下的版本的话,你需要仔阅读本章。 简易版 要让你的AngularJS应用在IE中正常运行你必须: 确保JSON字符串能被正常解析(IE7需要),你可以使用JSON2或者JSON3来实现。 你不能使用自定义的元素标签,如<ng:view>(你只能使用属性的形式,如<div n
我们在div里放一个img,发现: 在html和html5中,div的长宽是不同的,后者的高度要超过几个像素。 比如说,下面这个是html的。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css">
在一个模块中使用了 node 的 Events 和 Path 模块,现在希望模块能够同时在 node 中和浏览器中使用,有什么类似的模块可以兼容这两个环境,最好 api 的实现上和 node 模块大致一样。