`
clfsw0201
  • 浏览: 41356 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CSS应用中不同浏览器的非预期结果与解决办法

    博客分类:
  • CSS
阅读更多

1、<li/>浮动或其下块元素浮动在IE中显示不正常解决

.flt{float:left;display:inline;}

<ul>

      <li>

          <div class="flt">……</div>

          <div class="flt">……</div>

      </li>

</ul>

上面这行代码,在FF里面是正确的,但在IE,哪怕是IE 7都会显示不正常,两个div之间的间隔被扩得很大,即使再加一个div,定义类为

     .split{height:0;font-size:0;line-eight:0;clear:both;overflow:hidden;display:block;visibility:hidden;}

也不会起作用。唯一的解决办法是定义li的高度height:40px;虽然显示都正常了,但我还不知道为什么会这样。

(2009年1月4日)后记:今天终于知道原因了。其实我上面的那段代码不会出现问题,实际上我定义了<ul/>一个属性margin:10px 50px;这时<li/>下的两个元素之间在IE 6和IE 7中都会有大约50px的间距(好像继承了<ul/>的margin属性的一部分),和<ul/>左右边距一样大。如果将它的左右边距设为0,<li/>下的两个元素就紧挨着了(上下边距在IE里还是能显示正常的)。当然,如果不想把要有的空白定义在<ul/>的父级元素,就可以像上面我原来的解决办法一样,给<li/>定义一个高度就OK了!

====================================

(2009年1月12日)后记:<ul/>下的<li/>在IE(即使是IE7)中会继承一部分<ul/>的margin和padding属性:继承margin的左右边距值,继承padding的上下填充值。因此,可以放心地为<ul/>设置上下边距值和左右填充值,但要反过来就要小心了。这都是在<li/>浮动时会有这种情况,当不浮动时就没有必要这么小心了。

 

2、复选框与单选框写法(很多时候都想不起html里面还有一个label标签):

<div><!--复选框-->
<p>
    <input type="checkbox" name="terms" id="terms"/>
    <label for="terms">I have read the terms and conditions</label>
</p>
<p>
    <input type="checkbox" name="offers" id="offers" checked="checked"/>
    <label for="offers">I agree that you can contact me regarding special offers in the future</label>
</p>
</div>

<div><!--单选框-->
<p>
    <input type="radio" name="timeslot" id="morning" value="morning"/>
    <label for="morning">In the morning</label>
    <br/>
    <input type="radio" name="timeslot" id="afternoon" value="afternoon"/>
    <label for="afternoon">In the afternoon</label>
    <br/>
    <input type="radio" name="timeslot" id="evening" value="evening"/>
    <label for="evening">In the evening</label>
</p>
</div> 

 

3、不规则的背景用绝对定位实现,可能会用到z-index(Z-index 仅能在定位元素上奏效),有时这种方法甚至会用到banner上。CSS Zen Garden上就是大量应用的这种方法。

 

4、为实现内容在一个区域滚动,除了作为iframe使用外,可以设定区块大小,同时指定overflow:auto;或根据需要指定overflow-x和overflow-y。

 

5、去掉超链接点击后的虚线框:

           一个最简单的办法,是在<a/>中加入onfocus="this.blur()",可以使超链接在点击后不会出现虚线框。

           之前在书上看到过,通过设置属性或css来去掉,一种方式只有ie支持,另一种方式只有firefox支持,当时还记下了,不过现在用到了想找,缺找不到了。哪位要知道的话麻烦告诉我一下。

 

6、iframe元素,当没有设置scrolling="no"之前,如果没有超出范围,firefox不会显示滚动条,但IE却要显示。

 

7、CSS中text-indent属性在<span/>中不起作用,而要把span设为“display:block;”才可以,不知是不是内联元素都这样。

     还有设置input的pading-left和padding-right不起作用,只能用margin替代。之前好像a可以设置。同样是内联元素,设置时还不一定相同。

 

8、<li/>在IE下有一个默认的大小,用css不可设置,清除浮动时要注意。

     ===========================================

     (2009年2月3日)<li/>在IE下有默认的间距,大概2px。

 

9、ie中如果一个父级元素设定position:relative;那么它的所有子级元素如果浮动,将全部不可见,只要去掉该属性即可。(2009年2月12日)

 

10、<select>在ie6中用浮层无法覆盖,总会透出来,但可以在浮层下加一层<iframe>(将它定义为浮层),这样通过iframe这个层盖住复选框,再在上面放置自己定义好的浮层就表现正常了。(2009年3月3日16:54:57)

 

11、不同的定位方式在ie下可能有问题,如果检查半天找不到ie表现异常的原因,那就查查所有用到定位的元素,很有可能就是它们的原因。

 

12、有时设置一个纵向的平铺图片,由于子元素中有浮动,即使最后进行了浮动清除,也有可能不会显示出来,这时只要设置一个最小高度即可:height:auto;_height:100px;min-height:100px;。(2009-4-13)

 

13、ie下左右边线(border)段线(部分忽隐忽现)问题:如果容器内有两个浮动,并用CLEAR清除浮动。在ie下拖动滚动条时最外层的border会消失,如果给最外层加上宽度或者高度就不会出现。这是一个奇怪的现象,目前还不能解释是什么原因所导致的。(2009-4-16 10:58:58)

 

14、IE下如果设置了LI的高度,会出现渲染错误,原因我也不知道,但是可以使用line-height代替height,就没有问题了。或者float一下也可以。还有,在ie下ul浮动后下面会有一个默认的高度,但为啥,还未知,我所用的解决办法也只有定义父级元素的高度。

 

15、如果ul设为浮动,这时为ul设定padding或margin会出现问题,ie下li会部分继承(参考第1条)。

       如果li向左浮动排成一排,若li里面有块级元素,必须设定里面的块级元素也向左浮动,否则ie下会莫名其妙的li加宽,出现不是自己预期的结果(一般是1像素)。即使这样,有时仍有问题,不会出现预期效果。

 

16、实在找不到原因又懒得去找时可以用(我总记不清怎么写)

        <!--[if IE]>
        <style type="text/css">

 

        </style>
        <![endif]-->

 

 

分享到:
评论

相关推荐

    weatherdashboard:这是一个天气仪表板,将在浏览器中运行,并具有动态更新HTML和CSS

    技术领域该天气仪表板将在浏览器中运行,具有动态更新HTML和CSS,并从检索数据以检索城市的天气数据。 对于永久数据,将使用localStorage。功能性下图显示了此天气仪表板应用程序的预期模型:屏幕截图

    jquery.css-transform:用于变换操作和动画支持的轻量级 jQuery 插件

    jQuery CSS 转换 jQuery CSS Transform 是一个轻量级的 jQuery 插件,它为支持 CSS 转换的... 它使用原生 CSS变换属性和指定的变换函数之一来应用预期的变换效果。 不能同时应用多个变换函数。 但是,提供了一个函数来

    P13_Blazor项目模板讲解ThreeBlazor2020_1_11.rar

    WebAssembly 是一种新的客户端技术,可以在所有现代浏览器(包括移动浏览器)中实现近乎原生的性能,而且不需要插件。 许多语言,包括 C、C#、Go 和 Rust,都可以编译成面向基于栈的 WebAssembly 虚拟机的代码。 ...

    feedreader_testing:为供稿阅读器应用程序编写Jasmine规范

    我为此应用程序设计了测试套件,以确保该应用程序按预期运行。 入门 在浏览器中运行index.html index.html在应用程序的底部包含Jasmine测试结果 上看到的所有测试都应通过index.html视图 规格位于jasmine / spec /...

    DOMMatrix:用于Node.js应用程序和旧版浏览器的ES6 +来源的DOMMatrix填充程序

    ES6 +来源的填充程序,用于Node.js应用程序和旧版浏览器。 由于此来源已现代化,因此旧版浏览器可能需要一些其他垫片。 构造函数在许多方面几乎都与DOMMatrix等效,但是试图保持简单性。 在该注释中,我们尚未实现...

    ng-nest:NG-NEST是一个开源的Web应用程序框架,基于Angular和Nest,主要用于研发企业级中后台产品

    NG-NEST NG-NEST是一个开源的网络应用程序框架,基于角和鸟巢,主要用于研发企业级中后台产品。 是一个应用设计框架与开发平台,用于创建高效,复杂,精致的单页面应用。 是开发高效,可扩展的Node.js服务器端应用...

    格林姆林

    打开在浏览器中查看。 如果进行编辑,页面将重新加载。 您还将在控制台中看到任何棉绒错误。笔记我绝对花了更多的时间在这个上面。 我会说这至少是一整天,但是由于我的React经验是在本机React中,我确实不得不花...

    resume

    Jekyll在github-pages中自动建立简历模板数据格式: markdown方便书写() yaml (方便人识,支持复杂叠加) json (方便程序转换) 手机端适配打印格式优化(可导PDF) html和css压缩简单markdown嵌套浏览器兼容:...

    CV:简历模板

    IE6显示基本一致预期(Windows XP默认版本,显示略有不同) Safari(包括Mac,iPhone和iPad) 火狐 更多示例: 在线使用 应用此模板:登录github,点击使用此模板 设置Repository name仓库名如CV (仓库名与最后...

    Boulder_Buddy

    在浏览器的开发工具中打开“设备模式”(针对Iphone 6/7/8 Plus进行了优化),以预期形式查看该应用程序! 或在智能手机或其他设备上签出该应用。 访问附件的链接进行注册并试用!! **注意-每天都会重置数据库。 ...

    Java项目源码之家庭理财系统的实现(java+applet).zip

    客户端-服务器架构:系统采用客户端-服务器模式,客户端通过浏览器或Applet应用程序与服务器进行通信,服务器负责处理用户请求和管理数据。 分层架构:系统采用MVC(Model-View-Controller)架构,将业务逻辑、数据...

    Free-Web-Books

    该应用程序在Web浏览器中运行,使用React.js进行DOM操作,使用CSS进行样式设置。 贡献 欢迎任何拉动要求! 请求拉动时,请注明: 您添加了什么。 预期的行为。 GUI问题的屏幕快照(如果适用)。 发现的错误已...

    pizza-parlor

    披萨店项目由阿德里安·卡马乔(Adrian Camacho)描述: 此应用程序将根据从用户输入中选择的选项来计算比萨的价格设置说明: 将此到您的桌面。 导航到目录的顶层。 在浏览器中打开Index.html。错误: 这个项目仍在...

    virtual-doom

    这将传递给Camera组件,该组件将所有内容包装在div中,并设置了正确的transform css属性,以便整个场景以预期的方式进行了转换。 转变 该应用程序带有一些方便的组件,可让您在3D世界中放置事物(即任何HTML元素):...

    RecordReplay:通过 Chrome DevTools 协议进行自动化功能测试。 易于使用和开源。 生成独特的 CSS 和 Xpath 选择器。 输出多种测试框架的代码,包括Jest,Puppeteer,Selenium Webdriver和Cypress

    测试在您的 Chrome 浏览器中运行,因此无论您如何开发应用程序,React、Angular、Vue 或其他框架,Record/Replay 都可以正常工作。 我们旨在为所有开发人员提供服务,从没有编程经验的开发人员到具有多种测试框架...

    volunteer-registration

    打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。npm test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。npm run build 构建生产到应用...

    places:该网站向您显示以下状态信息

    该应用程序旨在向用户显示不同的状态。 当用户单击所述状态时,它将切换并向用户显示更多信息。 诸如热门城市,地标及其最后访问时间之类的州。 设置说明: 将此到您的桌面。 导航到目录的顶层。 在浏览器中打开...

    像素编辑器

    AC Pixel Editor是浏览器中的自定义样式编辑器,旨在与Animal Crossing New Horizo​​ns兼容。 您可以在这里使用它: : 左键单击以绘制,右键单击以擦除这使用固定的布局,至少不是响应式设计。 最好以1920x1080...

    js-toolbox:CLI工具,用于简化JavaScript应用程序库的开发,几乎不需要进行任何配置。 (未发布正在进行的工作包)

    开发JavaScript应用程序/库时,几乎不需要进行任何配置,仍然可以使用和提供的所有最新功能。 该工具可以全局安装,并用于编译遵循预期目录结构的任何项目。 目录 包含什么 脚手架,构建,皮棉,测试和运行应用程序...

Global site tag (gtag.js) - Google Analytics