sass 公用10个mixins代码块,算法太TM重要了,前端开发要求

简介: sass 公用10个mixins代码块,算法太TM重要了,前端开发要求


3、SVG背景图片及PNG和retina回退


这个mixin依赖于Modernizr,在你在页面上创建图片的时候添加一些额外的代码。

你需要一个.svg文件作为默认的背景图片。此外还需要一个.png格式的图片作为在不支持SVG格式的浏览器上的回退。另外,你还需要一个2倍尺寸大小的.png格式的图片作为retina设备上的回退。

你所需要的图片一共有:

- pattern.svg
- pattern.png
- pattern@2x.png
$image-path: ‘…/img’ !default;
$fallback-extension: ‘png’ !default;
$retina-suffix: ‘@2x’;
@mixin background-image($name, $size:false){
background-image: url(#{KaTeX parse error: Expected 'EOF', got '}' at position 11: image-path}̲/#{name}.svg);
@if($size){
background-size: $size;
}
.no-svg &{
background-image: url(#{KaTeX parse error: Expected 'EOF', got '}' at position 11: image-path}̲/#{name}.#{$fallback-extension});
@media only screen and (-moz-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
background-image: url(#{KaTeX parse error: Expected 'EOF', got '}' at position 11: image-path}̲/#{name}#{KaTeX parse error: Expected 'EOF', got '}' at position 14: retina-suffix}̲.#{fallback-extension});
}
}
}

使用方法

body {
@include background-image(‘pattern’);
}

4、Animations 和 keyframes


在插件CSS3 Animations动画的时候需要添加各种浏览器厂商前缀的代码。通过这个mixin你可以只使用几行代码就完成这些工作。

@mixin keyframes($animation-name) {
@-webkit-keyframes $animation-name {
@content;
}
@-moz-keyframes $animation-name {
@content;
}
@-ms-keyframes $animation-name {
@content;
}
@-o-keyframes $animation-name {
@content;
}
@keyframes $animation-name {
@content;
}
}
@mixin animation($str) {
-webkit-animation: #{$str};
-moz-animation: #{$str};
-ms-animation: #{$str};
-o-animation: #{$str};
animation: #{$str};
}
使用方法
@include keyframes(slide-down) {
0% { opacity: 1; }
90% { opacity: 0; }
}
.element {
width: 100px;
height: 100px;
background: black;
@include animation(‘slide-down 5s 3’);
}

5、Transitions


和animations一样,CSS transitions在使用的时候也要添加很多浏览器厂商的前缀,同样可以通过一个mixin来简化这些操作。

@mixin transition($args…) {
-webkit-transition: $args;
-moz-transition: $args;
-ms-transition: $args;
-o-transition: $args;
transition: $args;
}

使用方法

a {
color: gray;
@include transition(color .3s ease);
&:hover {
color: black;
}
}

6、跨浏览器的透明度设置


这个mixin可以可以制作出兼容 Internet Explorer 5 的跨浏览器透明度效果。

@mixin opacity($opacity) {
opacity: $opacity;
$opacity-ie: $opacity * 100;
filter: alpha(opacity=$opacity-ie); //IE8
}
使用方法
.faded-text {
@include opacity(0.8);
}

7、清除浮动(Clearfix)


在网上有各种不同的clearfix hacks方法。这里使用的方法是由Nicolas Gallagher设计的,这种清除浮动的方法能兼容IE6+的浏览器。

%clearfix {
*zoom: 1;
&:before, &:after {
content: " ";
display: table;
}
&:after {
clear: both;
}
}
相关文章
|
2月前
|
移动开发 算法 前端开发
前端算法之堆排序
前端算法之堆排序
20 1
|
2月前
|
算法 前端开发
前端算法之快速排序
前端算法之快速排序
23 0
|
2月前
|
算法 前端开发 搜索推荐
前端算法之归并排序
前端算法之归并排序
19 0
|
22天前
|
前端开发 算法 JavaScript
优化算法在前端性能提升中的应用
随着互联网应用的日益复杂,前端性能优化成为开发者关注的焦点。本文探讨了优化算法在前端性能提升中的重要作用,包括对JavaScript代码的优化、资源加载的算法选择以及页面渲染的优化策略。通过合理应用优化算法,可以有效提升前端应用的性能和用户体验。
|
16天前
|
人工智能 前端开发 JavaScript
前端Sass详解说明
前端Sass详解说明
|
2月前
|
前端开发 JavaScript Windows
前端利器SASS之入门篇,前端开发你需要了解的那些事
前端利器SASS之入门篇,前端开发你需要了解的那些事
|
2月前
|
算法 前端开发
前端算法之基数排序
前端算法之基数排序
19 1
|
2月前
|
算法 前端开发 搜索推荐
前端算法之桶排序
前端算法之桶排序
13 1
|
2月前
|
存储 算法 前端开发
前端算法之计数排序
前端算法之计数排序
17 1
|
2月前
|
JavaScript 算法 前端开发
【专栏】前端开发中的slot算法和shadow DOM,两者提供更灵活、高效和模块化的开发方式
【4月更文挑战第29天】本文探讨了前端开发中的slot算法和shadow DOM,两者提供更灵活、高效和模块化的开发方式。slot算法允许在组件中定义插槽位置,实现内容的灵活插入和复用,提高代码可读性和维护性。shadow DOM则通过封装DOM子树,实现样式和事件的隔离,增强组件独立性和安全性。这两种技术常应用于组件开发、页面布局和主题定制,但也面临兼容性、学习曲线和性能优化等挑战。理解并掌握它们能提升开发效率和用户体验。