• 当一个元素被浮动后,它的display是否会被默认指定为block?


    css 浮动后的元素不论是什么display的都默认是block就是设置inline也是block

    IE/6出现双边框的原因

    出现双边距的条件是当浮动元素的浮动方向和margin的方向一致时才会出现。也就是说,并不是只有块状元素左浮动,且具有左外边距时才有这个BUG,当一个盒子右浮动的同时有一个向右的margin-right的时候,IE6也会把margin-right解析为原来的2倍。当有多个同行元素都浮动了,而且都有同方向的margin,则只有最靠近浮动方向的元素有双边距bug。(如果都是一个方向的浮动那么第一个只有双边距,但同时也有右边的浮动,那么也同样是双边距,原理是相对谁浮动的)

    解决这个bug有两个方法:

    1. 给float的元素添加一个display:inline (错误!!!) 其实不用加,浮动的元素本身会变成block元素,加了也不会生效
    2. 给ie6写一个hack,其值是正常值的一半,即_margin-right:10px;这个方法不推荐,因为要加hack写法,而这个是要尽量避免写的。但是这个正好能够说明这个bug的真实存在。

    本来以为,将display设置为inline后,就改变了BUG产生的条件之一,即必须是块状元素。但是后来又看到了下面这段话:“熟悉规则的人知道浮动元素自动设置为”block”元素,而不管他们之前是什么。这说明浮动元素上的{display: inline;}会被忽略,事实上所有的浏览器没有呈现任何改变,包括IE。但是,它不知何故让IE停止将浮动元素的边界翻倍。”

    参考博客

  • 相关阅读:
    linux 邮件服务器
    Nginx学习之keepalive
    explain 和 desc 详解
    mysql 常用语句
    loop设备及losetup命令
    cryptsetup文件系统加密
    ftp主动与被动模式详解
    大型网站关键技术
    大访问量网站架构设计
    Mysql 的事务隔离级别
  • 原文地址:https://www.cnblogs.com/xiaqilin/p/6930886.html
Copyright © 2020-2023  润新知