热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

compass核心模块utilitiesGenralfloatmixin的使用

double-marginbuginIE56是浮动领域一个经典的bug.Thismoduleprovidesmixinsthathelpyouworkaroundthedo

"double-margin bug in IE5/6"

是浮动领域一个经典的bug.

This module provides mixins that help you work around the double-margin bug in IE5/6.

This file can be imported using: @import "compass/utilities/general/float"

在IE6下子元素相对于父元素float时,挨着父容器的子元素,如果有margin值,那么渲染之后的值会被double。

.sun{float:left;margin-left:100px;
}
//渲染之后该margin-left的值会被拉到200px;

fix的方法:

给这个float的子元素增加inline属性,W3C的规范定义float的元素会自动变为block元素,不管你的display值是什么。

所以加了这个inline并不会改变这个子元素的display特性,却可以神奇的解决IE6bug,所以要兼容IE6,float布局需要写成如下:

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

Compass针对这个问题,也封装了自己的mixin来解决这一bug。

compass把CSS分为了两类:

(1)border-radius,box-shadow,这类的CSS属性,如果不兼容,只会影响布局的样式美观程度,不会造成布局排版混乱;

对应browser support中的这个变量设置,默认值是0.1

$graceful-usage-threshold 0.1

(2)box-sizing;这类的CSS如果浏览器不兼容的话,会造成页面布局的混乱,

$critical-usage-threshold 0.01

意思是:如果我们支持的浏览器,在某个特定版本情况下,第二种CSS 属性的使用率达到了万分之一,那么在compass输出时该样式属性就应该考虑兼容这个浏览器版本。

以上两种属性对应browser Support中两种配置。

 

示例:

在 screen.scss文件中写下列样式:

.pull-left{@include float(left);
}//编译出来的结果
/* line 130, ../sass/screen.scss */
.pull-left {float: left;
}

很明显float是属于第二类属性的,那么第二类属性在IE6上的使用率如何呢?可以通过@debug omitted-usage("ie","6");来看其使用率。此时是没有dispaly:inline;这句代码的,原因如下:

使用&#64;debug omitted-usage("ie","6")可以在编辑器中显示使用率为0.0093<0.01&#xff0c;所以此时compass输出时不会考虑第二类CSS属性对浏览器的支持&#xff0c;自然就不会编译出display&#xff1a;inline这样的hack.

可以使用$browser-minimum-versions:("ie","6");来设置IE支持的最小版本&#xff0c;这时compass就不会根据属性使用率去判断IE6是否需要兼容支持了&#xff0c;而是根据浏览器的最低兼容版本去处理了。

设置了IE要支持IE6版本后&#xff0c;不在根据使用率而是有设置的版本号进行决定要不要进行相关兼容操作。

 

具体官方文档http://compass-style.org/reference/compass/utilities/general/float/


推荐阅读
  • vue使用
    关键词: ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • position属性absolute与relative的区别和用法详解
    本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
author-avatar
i92202502907823
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有