侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

跨浏览器开发经验总结(二) CSS

前端  /  管理员 发布于 7年前   255

CSS类级别的hack仅IE7识别 *+html {…}

IE6及IE6以下识别 * html {…}

opera、safari、chrome识别:

@media all and (min-width: 0px){…} //Firefox3.0.6不识别,但Firefox3.6也识别该规则,如果Firefox版本有严格要求,请使用下一条规则

@media screen and (-webkit-min-device-pixel-ratio:0){…} //IE、Firefox不识别该规则

仅opera识别:

@media screen and (-webkit-min-device-pixel-ratio:10000),not all and (-webkit-min-device-pixel-ratio:0{…}

CSS属性级别的hack仅IE识别 : margin-left:10px\9;

仅IE8识别 : margin-left:10px\0;

IE6/IE7识别 : *margin-left:10px;

仅IE6识别 : _margin-left:10px;

CSS Hack综合示例:

/**add 'margin-top: -10px;' for IE7/Firefox/Opera/Safari/Chrome , 'margin-top: 5px;' for IE8 **/

.news_list01 h2 span{float: right; margin-top: 5px; *margin-top: -10px; display: inline}

@media all and (min-width: 0px){

.news_list01 h2 span{float: right; height: 19px; margin: 0 0 0 0; padding-top: 16px; padding-bottom: 0; display: inline}

}

HTML代码片断级别的hack(仅IE识别)① <!--[if !IE]> 除IE外都可识别的代码片断<![endif]-->
② <!--[if IE]> 所有的IE可识别的代码片断 <![endif]-->
③ <!--[if IE 7]> 仅IE7可识别的代码片断 <![endif]-->
④ <!--[if lt IE 7]> IE7以及IE7以下版本可识别的代码片断<![endif]-->
⑤ <!--[if gte IE 7]> IE7以及IE7以上版本可识别的代码片断 <![endif]-->
用脚本设置CSS属性
设置元素的style样式
Var spanElement = document.getElementById(“mySpan”);
//下面写法保证出IE外,所有浏览器可用
spanElement.setAttribute(“style”,”font-weight:bold;color:red;”);
//下面的写法保证IE可用
spanElement.style.cssText=”font-weight:bold;color:red;”;
设置元素的class属性
Var element = document.getElementById(“myElement”);
//下面的写法保证除IE外,所有浏览器可用
Element.setAttribute(“class”,”styleClass”);
//下面写法保证IE可用
Element.setAttribute(“className”,”styleClass”);
具体CSS效果的实现
按钮悬停时鼠标呈现手的形状
cursor:hand和cursor:pointer效果是一样的,当鼠标移动至该元素时呈现手的形状。但是应该尽量使用cursor:pointer而非cursor:hand,因为cursor:hand只有IE识别,而cursor:pointer才是CSS2.0的标准属性,IE之外的浏览器也支持。
窗口滚动条显示问题
在使用弹出窗口或者框窗口架的时候,有时会有多余的滚动条出现,这时需要从多个方面进行确认:
弹出窗口时window.open方法参数中设置的窗样式是否定义了scroll=yes
框架标签的属性中是否设置了scrolling=“yes”
窗口或框架内页面的CSS中,是否对html或body的overflow进行了样式定义,如果没有请参考如下代码。

复制代码代码如下:
html {
margin: 0;
padding: 0;
overflow-x:hidden;
overflow-y:hidden;
}

line-height 属性
line-height行高指的是文本行的基线间的距离,即字体最底端与字体内部顶端之间的距离。如下图所示:
文本之间的空白距离(行距)不仅仅是行高决定的,同时也受字号的影响。有时侯同一行内的不同元素底边没有对齐,有可能就是行高不统一造成的,这时关调整高度和对齐方式是不够的,还需要调整line-height属性。
display:inline-block
display 属性有三个值:block,inline,inline-block。其中display:block就是将元素显示为块级元素;display:inline就是将元素显示为行内元素;display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内。
l block元素的特点是:总是在新行上开始;高度,行高以及顶和底边距都可控制;宽度缺省是它的容器的100%,除非设定一个宽度。<div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子, display属性默认值为block。

l inline元素的特点是: 和其他元素都在一行上;高,行高及顶和底边距不可改变;宽度就是它的文字或图片的宽度,不可改变。<span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子, display属性默认值为inline。

l inline-block的元素特点:呈现为内联对象,四周元素保持在同一行,但可以设置宽度和高度地块元素的属性,目前IE8、Firefox3、Opera、Safari都可以支持该属性了。
div中的文字自动换行问题
目前控制换行是使用以下CSS:

复制代码代码如下:
div.content {
word-wrap:break-word;
overflow:hidden;
}

在 IE 、Firefox、Safari、Chrome下没有任何问题,但是在 Opera下,长串英文会被遮住超出的内容。如果想要让长串英文字符也自动换行,还需要设置word-break:break-all; (但是,此方式会导致普通的英文语句中的单词会被断开,ie下也是)。英文单词在排版规则上不应该被断开,长串英文字符其实就是一个比较长的单词,自然也不需要断开换行显示了,所以一般不需要额外设置word-break:break-all; 。

textarea中的文字自动换行问题
在textarea中设置输入内容的自动换行,也是在CSS中设置word-wrap:break-word;属性。需要额外注意的是textarea元素本身有一个warp属性,其取值含义如下:

off:不自动换行;
hard:自动硬回车换行,换行标记一同被传送到服务器端(Opera、Chrome下不传);
soft:自动软回车换行,换行标记不会传送到服务器端。


  • 上一条:
    魔哥css圆角实现代码 (代码精简,完全自适应)
    下一条:
    CSS min-height IE6、IE7、FF下DIV自适应高度
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 使用 Alpine.js 排序插件对元素进行排序(0个评论)
    • 在js中使用jszip + file-saver实现批量下载OSS文件功能示例(0个评论)
    • 在vue中实现父页面按钮显示子组件中的el-dialog效果(0个评论)
    • 使用mock-server实现模拟接口对接流程步骤(0个评论)
    • vue项目打包程序实现把项目打包成一个exe可执行程序(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-03
    • 2018-04
    • 2018-05
    • 2018-06
    • 2018-09
    • 2018-11
    • 2018-12
    • 2019-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-04
    • 2021-05
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客