此篇会用三个实战范例来当作做 Sass 架构介绍的结尾。
阅读此篇内容前,建议先阅读过前两篇 Sass 架构:
接下来用三个实际范例来介绍常见的架构范例。
依照 page 各自页面撰写彼此的样式。
特性:
每一个页面的 独特性高
。(例如滚动视差、内容介绍、不同的 hover 效果)
重复性低
没办法建立元件、通用类别。
适合作法:
all.scss
|-- layout
|-- _header.scss
|-- _footer.scss
|-- base
|-- _base.scss
|-- helpers
|-- _variables.scss
|-- _utilities.scss
|-- page
|-- _index.scss
|-- _product.scss
|-- _store.scss
|-- _faq.scss
透过元件化、通用类别化,来撰写样式。
特性:
重复性高
。适合作法:
all.scss
|-- layout
|-- _header.scss
|-- _footer.scss
|-- helpers
|-- _variables.scss
|-- _utilities.scss
|-- _base.scss
|-- _util.scss
|-- components
|-- _button.scss
|-- _table.scss
|-- _form.scss
|-- _grid.scss
|-- _menu.scss
|-- page
|-- _index.scss
这边就不示范范架构范例了,直接分享常见的问题以及如何解决。
特性:
独特性高
重复性高
常见问题分为三个方向来讲:
Bootstrap 相关
Q:特别的文字大小、行高。
A:可以用 通用类别
解决的都用 通用类别
解决,_variables.scss
、_utilities.scss
新增自定义变数。
Q:接续上个问题,可能会问如何知道能不能用通用类别解决?
A:参考原始码 _variables.scss、_utilities.scss,在原始码中搜寻要用的 语法关键字
。
Q:覆盖 Bootstrap 原本元件样式,要单独写一支元件样式,还是写在有使用此元件的页面样式?
A:建议 单独
拉出来写(ex:_form.scss
、_accordion.scss
),哪怕只有一点点,拉出来至少後续 方便维护
(ex:元件改版),能够 快速
找到问题。
架构相关
Q:没办法分类的样式怎麽处理?
A:通常无法分类的样式我会移到 util.scss
。
Q:刻意元件化!
A:若只有单一个页面使用,则建议直接写在此页面的样式中即可(ex:_product.scss
),若不熟悉元件的朋友,可以先参考官方的元件。
Q:资料夹内只有一个档案可以吗?
A:先说在设计结构时最大的目的是 提升维护以及可读性
,所以大方向建议是 整体结构变少
→ 每只档案样式减少
→ 档案减少
,而不是一昧的为了拆而拆导致整体不方便阅读。
归类语法相关
示范如何归类:
hover 效果
一支 *.scss
档案专门处理 hover 效果样式:
.translucent-hover:hover {
opacity: 0.5;
}
.pink-hover:hover {
background: $pink;
color: $red;
}
.image-zoom-hover {
transition: all 1s ease-out;
&:hover {
transition: all 0.5s cubic-bezier(.165, .84, .44, 1);
transform: scale(1.2);
}
}
不同图片大小
一支 *.scss
档案专门处理图片样式,会存放不同的大小。
.logo {
width: 45px;
height: 45px;
display: block;
text-indent: 101%;
overflow: hidden;
white-space: nowrap;
}
.logo-primary {
background: url(../images/photo-1612157879902-5382bc6e864b.jpeg) no-repeat center/cover;
}
.logo-white {
background: url(../images/photo-1612157777902-5382bc79864b.jpeg) no-repeat center/cover;
}
.index-banner {
background: url(../images/photo-1612157777902-5382bc6e864b.jpeg) no-repeat bottom/cover;
}
.head-shots-img-s {
width: 48px;
height: 48px;
}
.head-shots-img-m {
width: 96px;
height: 96px;
}
<<: 【心得】不同 gradient 使用方式-- linear-gradient()
引言 不好意思,作者总是有说不完的序言! 「机派X」的由来源自於无人机的机、树莓派的派还有 Linu...
本次要来介绍如何建立Android Studio上的模拟器,以及有哪些优缺点。 首先我认为最大的优点...
影片继续看下去 选择 Rotate 底下的 Direction 就是顺时钟还是逆时钟旋转。 我们选择...
接下来的几篇文章,我们将要几乎可以说是软件架构模式始祖 ( 大概 ) 的这本书 : 企业应用架构模式...
忙碌的一天又过去了,下班回家头昏眼花的... 要完成铁人赛真的需要超凡意志,还好今天星期五... 好...