问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样解决div css布局页面浏览器的兼容问题

发布网友 发布时间:2022-04-20 17:14

我来回答

7个回答

懂视网 时间:2022-04-20 21:36

一开始我猜测使用它可以实现,采用如下 CSS :

.justify{
 text-align: justify;
}

.justify i{
 width:24px;
 line-height:24px;
 display:inline-block;
 text-align:center;
 border-radius:50%;
}

结果如下:

justify

Demo戳我

没有得到意料之中的结果,并没有实现所谓的两端对齐,查找原因,在 W3C 找到这样一段解释:

最后一个水平对齐属性是 justify,它会带来自己的一些问题。CSS 中没有说明如何处理连字符,因为不同的语言有不同的连字符规则。规范没有尝试去调和这样一些很可能不完备的规则,而是干脆不提这个问题。

额,我看完上面一大段解释还是没明白上面意思,再继续查证,才找到原因:

虽然 text-align:justify 属性是全兼容的,但是要使用它实现两端对齐,需要注意在模块之间添加[空格/换行符/制表符]才能起作用。

也就是说每一个 1 间隙,至少需要有一个空格或者换行或者制表符才行。

好的,我们尝试一下更新一下 HTML 结构,采用同样的 CSS:

 
 1

 2

 3

 4

 5

 

尝试给每一块中间添加一个换行符,结果如下:

justify

Demo戳我

啊哦,还是不行啊。

再寻找原因,原来是出在最后一个元素上面,然后我找到了 text-align-last 这个属性,text-align-last属性规定如何对齐文本的最后一行,并且 text-align-last 属性只有在 text-align 属性设置为 justify 时才起作用。

尝试给容器添加 text-align-last:justify

.justify{
 text-align: justify;
 text-align-last: justify; // 新增这一行
}

.justify i{
 width:24px;
 line-height:24px;
 display:inline-block;
 text-align:center;
 border-radius:50%;
}

发现终于可以了,实现了多列均匀布局:

o_justify2

Demo戳我

结束了?没有,查看一下 text-align-last 的兼容性:

text-align-last-poliify

但是一看兼容性,惨不忍睹,只有 IE8+ 和 最新的 chrome 支持 text-align-last 属性,也就是说,如果你不是在使用 IE8+ 或者 最新版的 chrome 观看本文,上面 Demo 里的打开的 codePen 例子还是没有均匀分布。

上面说了要使用 text-align:justify 实现多列布局,要配合 text-align-last ,但是它的兼容性又不好,真的没办法了么,其实还是有的,使用伪元素配合,不需要 text-align-last 属性。

我们给 class="justify"div 添加一个伪元素:

.justify{
 text-align: justify;
}

.justify i{
 width:24px;
 line-height:24px;
 display:inline-block;
 text-align:center;
 border-radius:50%;
}

.justify:after {
 content: "";
 display: inline-block;
 position: relative;
 width: 100%;
}

去掉了 text-align-last: justify 了,增加一个伪元素,效果如下:

o_justify2

Demo戳我,任意列数均匀布局

通过给伪元素 :after 设置 inline-block 设置宽度 100% ,配合容器的 text-align: justify 就可以轻松实现多列均匀布局了。再多配合几句 hack 代码,可以实现兼容到 IE6+ ,最重要的是代码不长,很好理解。

最终实现题目初始所示:

多列均匀布局

Demo戳我,任意列数均匀布局

此方法初见于这篇文章,得到原博主同意写入了本系列,非常值得一看:

  • 别想多了,只不过是两端对齐而已
  • 所有题目汇总在我的 Github ,发到博客希望得到更多的交流。

    到此本文结束,如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

    热心网友 时间:2022-04-20 18:44

    哎,是有点麻烦,根据我的经验。你应该这样做,可以省点事。首先不要考虑什么兼容性。你可以先用现代标准浏览器测试你的网页,比如IE8或Firefox,什么ie6、ie7可以先不用考虑。在IE8或Firefox中测试正常后,在用ie6、ie7测试,现在就开始写兼容代码。这样做,让你思路比较清晰。但是你一定要了解你的css代码的作用。不然调试的时候,你会越弄越乱的。
    做兼容代码,你需要注意的是,各种浏览器元素盒模型的不同解析(影响元素的宽和高),浮动的清除(影响布局)等。特别注意ie6它的与众不同。

    热心网友 时间:2022-04-20 20:02

    你刚学DIV+CSS吧 要让页面居中 在每个父层DIV定义了你需要的宽度的情况下加上margin:0 auto;这样才能在基本上你能接触的浏览器上居中,建议你去www.52CSS.COM多学习,我也在那里学习中。呵呵!

    热心网友 时间:2022-04-20 21:36

    以width为例吧:
    width:100px;这样所有浏览器都能识别,但是解释结果不一样;
    width:100px!important;或*width:100px!important;或*width:100px;这样写IE7能认识,我一直用第一种方式;
    _width:100px;这种写法只有IE6认识;
    在使用float控制不换行版式事注意加上overflow:hidden;否则,在有些浏览器中是得不到想要的结果的!

    热心网友 时间:2022-04-20 23:28

    你只能两个浏览器来回实验着看,还有记得overflow:hidden,有时候火狐浏览器,没有这个,父模块和子模块之间就控制不住。

    热心网友 时间:2022-04-21 01:36

    这个你可以参考网上有许多的兼容问题
    http://blog.sina.com.cn/s/blog_5fc02bdd0100dkmb.html

    热心网友 时间:2022-04-21 04:00

    我收藏了一些这方面的知识,希望对你有帮助
    http://hi.baidu.com/liushuhuan11/blog/item/00aaa63ada2db0cbd4622569.html
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    "多难兴邦"这个词,让我们懂得了什么? uc怎么进入阅读模式 进入阅读模式方法介绍 uc怎么进入小说阅读模式 uc浏览器设置阅读模式-uc浏览器设置阅读模式方法 uc电脑阅读模式怎么设置电脑上UC浏览器的阅读模式怎么打开 微信怎么判断对方把你拉黑并且删除了,还是只是拉黑了? 公司诉讼由哪个法院管辖?公司诉讼管辖确定的理论依据? 笔记本电脑开机无法进入系统笔记本电脑开机后无法进入系统 从深圳到乌镇玩三天,花销最少是多少?越少越好,如果有个计划就更好乐 马上快过年放假了,第一次去见岳父,送茅台好还是五粮液好? 镇长打人要到哪里去投诉 武功县镇长贪污怎么投诉 在中国,银行家指的是什么人,银行行长吗? 中国最权威最知名的金融专家 银行家是谁 新中国成立后留在中国的银行家有哪些?还有他们的命运? 中国近代银行家 中国近代有哪些比较著名的银行家吗,有谁能给介绍下呢?给分哦 - 信息提示 火影忍者ol好友怎么加 添加好友及好友功能详解 为什么我打开别人QQ空间看相册打不开,总说在系统维护? QQ,已关注的话题,怎么取消关注。有图片解析更好。 如何截取游戏视频(需要自定义截取范围大小) 中国只有津膜科技做反渗透最牛吗 反渗透膜概念股有哪些 老总,300334什么时候复牌 无线网络可以查IP地址吗 津膜科技股票从发行到现在最低多少 无线网卡能查到ip吗 企业所得税年度申报表填完以后有一个税收风险提示按钮,是不是一定要点击?有了提示是否一定需要修改? 10月发现2017年的费用少计了20万,做以前年度损益调整,2017年的企业所得税申报表(年度)还 热的偏旁是什么? 谢谢了 热的偏旁部首是什么 热的部首是什么 “热”字的偏旁是什么? 热的部首叫什么 热的偏旁口? 热字偏旁是什么 热的偏旁是什么 热的偏旁部首第五笔是什么 热的部首名称用音节咋么写 热什么部首是什么 热的部首怎么读 热查什么部首是什么 "热"换一个偏旁是什么字? 热是什么结构的字带有与他相同部首的字大多和什么有关? 谁知道“热”字底下的 那个偏旁怎么打出来??? 热字可以加什么偏旁 宿迁拆装空调要多少钱 梦见墙倒后碎屑将去世的奶奶眼睛弄流血了 宿迁地区哪里有安装水冷空调(冷风机)的??