当前位置:  编程技术>WEB前端
本页文章导读:
    ▪SASS(Syntactically Awesome Stylesheets Sass)绝对新手入门教程      日期:2013-2-18  来源:GBin1.com 什么是SASS? SASS英文意思是Syntactically Awesome Stylesheets Sass,最早由Hampton Catlin开发和设计。SASS是一种帮助你简化CSS工作流程的方式,帮助你更容易的维和和.........
    ▪CSS控制页面最大最小宽度和高度可兼容IE6版本的实现方法      CSS设置页面最大最小宽度 兼容ie6/7/8/9,FF,chrome,sogou等浏览器 设置最小宽度 div { width:100%; min-width:1000px; width:expression_r(document.body.clientWidth < 1000 ? "1000px": "auto" ); } 设置最大宽度 div { width:100%;.........
    ▪Raphaël带文本标签可拖动的图形      【渣排版】最近准备学学Javascript和Raphaël,实现一个可拖动的矩形,另外矩形上还得显示标签。查了一下网上这个东西还比较冷门。Javascript才学没几天,代码估计写的很烂。 1 <!doctype htm.........

[1]SASS(Syntactically Awesome Stylesheets Sass)绝对新手入门教程
    来源: 互联网  发布时间: 2013-11-06

日期:2013-2-18  来源:GBin1.com

什么是SASS?

SASS英文意思是Syntactically Awesome Stylesheets Sass,最早由Hampton Catlin开发和设计。SASS是一种帮助你简化CSS工作流程的方式,帮助你更容易的维和和开发CSS内容。

如果你不明白为什么用SASS,你可以先看看这篇文章 为什么需要将SASS和Compass融入CSS代码开发流程 - CSS编译器帮助你提高CSS开发效率和乐趣

最简单的例子,你是不是经常需要使用“查询”和“替换”功能来修改CSS文件中某一个16进制的颜色?或者是打开一个计算器来计算多列设计中的列宽? SASS介绍了一个新的概念例如,variables,mixins,镶套或者是选择器继承。 从外形上看起来,非常像CSS,但是并没有分割号或者大括号。

看看下面这个简单的CSS:

#skyscraper_ad
{
  display: block;
  width: 120px;
  height: 600px; 
}

#leaderboard_ad 
{
  display: block;
  width: 728px;
  height: 90px; 
}

如果你需要使用SASS,则如下代码:

#skyscraper_ad
  display: block
  width: 120px
  height: 600px

#leaderboard_ad 
  display: block
  width: 728px
  height: 90px

SASS使用双空格的缩进来定义代码镶套结构。这里你可以大体的了解SASS的样子,下面我们将介绍为什么SASS如此的棒!

如果你需要更多了解SASS,可以查看这篇内容为什么需要将SASS和Compass融入CSS代码开发流程。

变量

在SASS中使用美元符号定义一个变量,在这个例子里,一个美元自负,变量名字加上一个冒号定义一个变量。

$red: #FF4848

当然,在SASS中有一些内建的功能,例如,darken,lighten来帮助你修改变量。下面例子里,我们使用lighten方法来生成段落中更亮的红色:

$red: #FF4848 $fontsize: 12px h1   color: $red  p   color: lighten($red, 10%) 

在SASS中你还可以使用加减的方式来修改变量的值,如下:

p.addition_and_subtraction   color: $red - #101   font-size: $fontsize + 10px 
镶套

两种类型的镶套:

选择器镶套

这是第一个镶套类型。镶套类似我们在html中使用的方式。

$fontsize: 12px

.speaker
  .name
    font:
      weight: bold
      size: $fontsize + 10px
  .position
    font:
      size: $fontsize

如果你看看生成的CSS代码,你可以看到如果镶套的.name class位于.speaker class中,生成的CSS选择器.speaker .name

.speaker .name {
  font-weight: bold;
  font-size: 22px; }
.speaker .position {
  font-size: 12px; }
属性镶套

这是第二个镶套的类型:

你可以使用同名前缀来镶套属性

$fontsize: 12px

.speaker
  .name
    font:
      weight: bold
      size: $fontsize + 10px
  .position
    font:
      size: $fontsize

在上面的例子中,我们可以看到font属性后添加了一个双空格缩进,接下来是weight 和 size,这将会生成font-weight和font-size属性,如下:

.speaker .name {
  font-weight: bold;
  font-size: 22px; }
.speaker .position {
  font-size: 12px; }

所有的CSS连接符的属性都支持。使用这种属性的镶套方式,可以帮助你有效的组织CSS的结构。

Mixins

Mixins是另外一个SASS的超棒属性,允许你高效的重用你的一些SASS的代码片段,甚至可以传递参数并且指定缺省的值。

定义mixins只需要使用@mixin关键字,然后是你需要使用的代码部分。如果你需要使用任何的参数,包含一对括号和参数即可。如果你希望使用缺省值,添加一个冒号即可。

包含一个mixin也非常简答,使用@include关键字,后面跟随着Mixin名称和任何括号中定义的参数即可。如下:

@mixin border-radius($amount: 5px)
  -moz-border-radius: $amount
  -webkit-border-radius: $amount
  border-radius: $amount

h1
  @include border-radius(2px)

.speaker
  @include border-radius

上面的SASS将会被编译成如下CSS:

h1 {
  -moz-border-radius: 2px;
  -webkit-border-radius: 2px;
  border-radius: 2x; }

.speaker {
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px; }  

我们指定了h1中的radius,但是对于.speaker我们没有指定任何内容。所以会使用缺省的5px。

选择器继承

选择器继承允许你告诉任何选择器从另外一个选择器继承所有的样式,非常棒的一个特性。

使用它需要指定关键字@extend,后面跟随一个你喜欢继承的选择器,然后所有的选择器的样式将会被继承。

h1   border: 4px solid #ff9aa9  .speaker   @extend h1   border-width: 2px  

以上代码将会被编译成如下CSS:

h1, .speaker {   border: 4px solid #ff9aa9; }  .speaker {   border-width: 2px; } 
调试SASS

在线调试:你可以不安装而使用SASS的在线调试来尝试SASS的超棒特性。

安装使用:如果你有Ruby gems你只需要简单运行gem install sass即可。

你可以输入如下命令:

sass --watch sass_folder:stylesheets_folder

其中sass_folder是你的sass文件的目录,stylesheets_folder是生成的css的目录。--watch选项意思是将会关注这个目录,如果我们修改了任何文件,保存后将会被自动的转化。

将CSS转化成SASS

你可以在已经存在的项目中使用sass-convert。

输入你需要转换的目录并且输入:

sass-convert --from css --to sass -R .

其中-R意思是递归, . 意思是当前目录

关于SCSS(SASSY CSS)

这里我们只介绍了SASS语法。然而,这里有一个叫做SCSS(Sassy CSS)的更新的格式。区别在于Sassy CSS看起来更像我们在CSS中使用的样子,但是也有类似 variable,mixins,镶套和选择器继承的特性。

总结

SASS是一个超棒的保持CSS结构话的好工具,这里甚至有一些项目例如 Compass使用mixins来包含CSS框架而不是将无任何语义的CSS插入你的HTML中。但是不论如何,相信你会喜欢这个超棒的CSS工具的,还想什么,在下一个项目中尝试一下它吧!

来源:SASS(Syntactically Awesome Stylesheets Sass)绝对新手入门教程

作者:jjfat 发表于2013-2-18 11:16:46 原文链接
阅读:22 评论:0 查看评论

    
[2]CSS控制页面最大最小宽度和高度可兼容IE6版本的实现方法
    来源:    发布时间: 2013-11-06

CSS设置页面最大最小宽度
兼容ie6/7/8/9,FF,chrome,sogou等浏览器

设置最小宽度
div {
width:100%;
min-width:1000px;
width:expression_r(document.body.clientWidth < 1000 ? "1000px": "auto" );
}

设置最大宽度
div {
width:100%;
max-width:1200px;
width:expression_r(document.body.clientWidth > 1200 ? "1200px": "auto" );
}

同时设置最大宽度和最小宽度
div {
width:100%;
min-width:1000px;
max-width:1200px;
width:expression_r( Math.max(1000, Math.min(1200, document.body.offsetWidth*0.99))+"px" );
}

css ie6最小高度
min-height最小高度的实现(兼容IEie6/7/8/9、FF)
div {
min-height:100px;
height:auto !important;
height:100px;
overflow:visible;
}

本文链接


    
[3]Raphaël带文本标签可拖动的图形
    来源:    发布时间: 2013-11-06

【渣排版】

最近准备学学Javascript和Raphaël,实现一个可拖动的矩形,另外矩形上还得显示标签。查了一下网上这个东西还比较冷门。Javascript才学没几天,代码估计写的很烂。

1 <!doctype html>
2 <html charset="utf-8">
3 <head>
4 <title>Raphaël - Connectivities</title>
5 <script src="/blog_article/raphael-min.js" type="text/javascript" charset="utf-8"></script>
6 <script type="text/javascript">
7 function Entity(r, l, t, w, h){
8 this.Label = r.text(l + w/2, t + h/2, "Hello World!");
9 this.Rectangle = r.rect(l, t, w, h, 10).attr({fill:"brown", stroke:"#666", title:"A Rectangle"}).drag(move, Dragger, up).data("cooperative", this.Label).toBack();
10
11 function Dragger(){
12 this.xx = this.attr("x");
13 this.yy = this.attr("y");
14 this.animate({"fill-opacity": .2}, 500);
15 }
16
17 function move(dx, dy){
18 var attr = {x: this.xx + dx, y: this.yy + dy};
19 this.attr(attr);
20 var lb = this.data("cooperative");
21 var attr1 = {x:
    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪html小技巧之td,div标签里内容不换行
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3