中易网

为什么需要将SASS和Compass融入CSS代码开发流程

答案:1  悬赏:0  
解决时间 2021-03-25 15:16
为什么需要将SASS和Compass融入CSS代码开发流程
最佳答案
我不得不承认,CSS非常棒,但是缺省的语法绝对的烂。你是不是也厌倦了CSS的书写方式呢?特别是当项目越来越大,代码堆积越来越多的时候。如果我们还是继续这种愚蠢的编码方式,那么对于CSS开发的人员来说。绝对是一个不省心的工作!
而当CSS编译器真正来到的时候,完全改变了我们的工作方式。今天我们将要讲解使用CSS编译器的诸多好处并且介绍你如何能够真正在工作中有效使用它。
Time to keep it simple, no time for the stupid!
会议一下作为前台开发人员,你写过多少次这样的代码?
ul { padding: 0px; margin: 0px; }
ul li { padding: 0px 5px; }
ul li a { color: #335345; }
ul li span { color: #434343; }
或许你也感叹过,我到底要写多少个ul li阿? 真是无用功!
没错,的确是!
那么对于颜色,字体大小,或者margin/padding这些在CSS中随时重复的东西。试想一下,你如果想修改一些东西,确发现,你要修改的东西到处都有。这样情况大家都遇到过!绝对是噩梦!
你的样式表里的样式呢?是不是已经厌倦了老是使用同样的样式?修改样式?兄弟,这可不是简单的活儿!
怎么去解决这样的问题呢? SASS!
编译CSS?什么?没搞错吧?
不要大惊小怪!如果你不是一个熟悉终端的开发者,或者说是windows中的cmd。那么这里有很多的解决方案可能让你放弃选择终端来管理项目。不过这里让我们退一步说。
SASS赋予你修改你的CSS并且生成真正的CSS文件的能力。简单说来,它就是察看SASS文件,并且生成正确的CSS文件。
那么,如果你需要修改CSS,那么你就使用命令通过SASS文件来直接生成CSS文件。一旦你保存了SASS文件。就不需要管理CSS文件了。因为只需要花几秒,你就能生成需要的CSS。当然你需要时间来熟悉这些,不过对于开发来说,绝对值得!
样式嵌套
首先最让我喜欢的SASS和SCSS的地方在于语法拥有样式嵌套。这使得和你的样式结合使用起来非常的简单。例如,你有如下HTML:
<ul>
<li>
<a href="#">link 1</a>
</li>
<li class="last">
<a href="#">link 2</a>
</li>
</ul>
在SASS中,你将能够书写如下结构:
ul {
padding: 0px;
margin: 0px;
width: 210px;
li {
float: left;
width: 100px;
margin: 0px 10px 0px 0px;
&.last {
margin: 0px;
}

a {
color: #232323;
&:hover {
color: #121212;
}
}
}
}
是不是非常的清楚? 最后你可以使用HTML里方式来嵌套你的CSS。你可以使用任何CSS选择器来使得流程更加简单!
我同样也添加了一些在SASS中经常使用的很多不错特性: "&" 标号。这个将告诉SASS来设定一个额外的规则。因此使用class .last定义的li元素将使用这个方法。不用去创建一个新的规则。悬浮的anchor标签也同样使用这个方法。非常实用!
变量,Mixin和选择器继承
样式代码片断的重用使得CSS非常的动态,这也是SASS最擅长的。
变量很简单。定义并且使用在你的SASS文件中:
$background: #040404;
$text-color: #fefefe;
$standard-margin: 16px;

body {
background-color: $background;
color: $text-color;

input {
background-color: $background;
color: $text-color;
margin: $standard-margin;
}
}
定义了一个变量$varname:value并且在代码中使用$varname。
Mixin有点儿像变量但是主要为了样式片断。你可以告诉SASS冲用一部分的代码片断并且包含在样式里。你甚至可以指定参数使得他们动态。就像你给CSS写方法一样。
@mixin ptsans {
font-family: 'PT Sans', sans-serif;
}

@mixin absolute-positioned($top, $left) {
position: absolute;
top: $top;
left: $left;
}

body {
@include ptsans;
position: relative;

#notifier {
@include absolute-positioned(20px, 100px);
}
}
使 用@mixin mixinname{这里写样式}来定义一个mixin ,或者使用@mixin mixinname($parameter1){somestyle:$parameter1}。非常适合重复的样式和CSS3的fallback内容。 你可以添加很多的样式到mixin里然后很方便的重用。
最后要说的是selector继承。这允许你像mixin那样取得一段样式,并且继承扩展它。这样你可以在实际的CSS中放入同样的代码,但是扩展CSS规则。这里举一个例子:
CSS源代码:
.error, .succes {
border: 1px solid black;
padding: 5px;
color: red;
}

.succes {
color: green;
border-color: green;
}

SCSS:
.error {
border: 1px solid black;
padding: 5px;
color: red;
}

.succes {
.error;
color: green;
border-color: green;
}

是不是简单明了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
安徽省滁州市全椒县十字镇高桥村邮编是什么?
野钓流水,漂不管用 怎么钓
如何找到创业型公司 ,加入
中国建设银行24小时自助银行(东阳白云支行)地
兰州市区外地车辆限行区域图
康美奇瘦身奶昔怎么样 有喝过的么?
蕲春县黄冈伊老二特色小吃地址有谁知道?有点
东财的有学生论坛吗!~
校内网彩色泡泡龙游戏攻略
如何去除纹的眉毛呢?
我6人寝室和3人寝室的区别
崇州婚纱摄影-崇州婚纱影楼-崇州婚纱店-崇州
怀孕满3个月还是吐
排卵后卵子能存活几天的啊?知道的朋友告诉我
用日语来说
推荐资讯
请给我姓吴的小女孩起名
索尼微单开机出现相机错误
我想加盟丝瓜络保健产品进行营销,听说美尔络
泷泽萝拉的解压密码是多少
无锡催乳师联系方式 急求!!!!
小学直饮水机安装比例
广州二手房装修
急啊!有谁知道连江哪有卖麦芽糖的是浓的那种
长沙月嫂服务哪里的最好,最实惠?我朋友快生
济南市有哪些幼儿园里有蒙特梭利教育班
兴化市戴南高级中学会将学生档案邮寄给大学吗
老公不能生育我该怎么办
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?