Sass云部署的美萍进销存管理系统统有哪些

&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
SASS优化响应式布局断点管理
摘要:原文:《ManagingResponsiveBreakpointswithSass》作者:HugoGiraudel,来自法国,著名SASS大牛,在SassWay等多个网站撰文推广sass,是SassyJSON、SassyMatrix等多个开源项目的开发者,大家可以到他的官方网站、github上了解详情。翻译:前端开发whqet,以意译为主,不当之处请大家批评指正。---------------------------------------------------------
原文:《Managing Responsive Breakpoints with Sass》
作者:Hugo Giraudel,来自法国,著名SASS大牛,在SassWay等多个网站撰文推广sass,是SassyJSON、SassyMatrix等多个开源项目的开发者,大家可以到他的官方网站、github上了解详情。
翻译:前端开发whqet,以意译为主,不当之处请大家批评指正。
---------------------------------------------------------------------------------------------------------------------------------
当你需要搞定响应式布局时,一堆堆的媒体查询、大量的属性、属性值往往可以把你搞颠,SASS(或者诸如此类的预处理器)被认为是处理响应式断点的最佳利器。
说到响应式断点处理,很多种方式涌上心头,经常有人问哪种方式最优,正如前端开发领域的大多数问题一样,这个问题同样没有标准答案,我们需要具体问题具体分析。更确切的说,难度不在于提出一个系统,而是提出一个既足够灵活(适用大部分场合)又不非常复杂的系统。
在今天的文章里,我将给大家介绍若干种响应式布局断点的解决方案,每一种都经过实践验证,一些方案可能优于其他方案,我会把决定的权利交给大家。
1.使用变量(With variables)
Bootstrap和Foundation采用这种方式,首先定义变量,然后在媒体查询中使用变量。换句话说,你可以在配置文件或者其他地方定义变量以备使用。我们来看看Bootstrap怎么干的。
// Defining values$screen-sm-min: 768$screen-xs-max: ($screen-sm-min - 1);$screen-md-min: 992$screen-sm-max: ($screen-md-min - 1);$screen-lg-min: 1200$screen-md-max: ($screen-lg-min - 1); //
(max-width: $screen-xs-max) { ... }@media (min-width: $screen-sm-min) { ... }@media (max-width: $screen-sm-max) { ... }@media (min-width: $screen-md-min) { ... }@media (max-width: $screen-md-max) { ... }@media (min-width: $screen-lg-min) { ... }Foudation更进一步,使用跨范围的媒体查询,避免使用过多的max-width和min-width。
// Defining values$small-range: (0em, 40em); /* 0, 640px */$medium-range:(40.063em, 64em);/* 641px, 1024px */$large-range: (64.063em, 90em);/* 1025px, 1440px */$xlarge-range:(90.063em, 120em); /* 1441px, 1920px */$xxlarge-range: (120.063em); /* 1921px */ // Defining media queries$screen: &only screen& !$landscape:&#{$screen} and (orientation: landscape)& !$portrait: &#{$screen} and (orientation: portrait)& !$small-up: $screen !$small-only: &#{$screen} and (max-width: #{upper-bound($small-range)})& !$medium-up:&#{$screen} and (min-width:#{lower-bound($medium-range)})& !$medium-only:&#{$screen} and (min-width:#{lower-bound($medium-range)}) and (max-width:#{upper-bound($medium-range)})& !$large-up: &#{$screen} and (min-width:#{lower-bound($large-range)})& !$large-only: &#{$screen} and (min-width:#{lower-bound($large-range)}) and (max-width:#{upper-bound($large-range)})& !$xlarge-up:&#{$screen} and (min-width:#{lower-bound($xlarge-range)})& !$xlarge-only:&#{$screen} and (min-width:#{lower-bound($xlarge-range)}) and (max-width:#{upper-bound($xlarge-range)})& !$xxlarge-up: &#{$screen} and (min-width:#{lower-bound($xxlarge-range)})& !$xxlarge-only: &#{$screen} and (min-width:#{lower-bound($xxlarge-range)}) and (max-width:#{upper-bound($xxlarge-range)})& ! //
#{$small-up} { ... }@media #{$small-only} { ... }@media #{$medium-up}{ ... }@media #{$medium-only}{ ... }@media #{$large-up} { ... }@media #{$large-only} { ... }@media #{$xlarge-up}{ ... }@media #{$xlarge-only}{ ... }@media #{$xxlarge-up} { ... }@media #{$xxlarge-only} { ... }两种方法各有一个不爽的地方,在Bootstrap里每次都要使用max-width,在Foundation里我们需要使用插值变量这种又丑又烦的方式。显示我们需要想办法解决这些问题。
2.使用独立Mixin(With a standalone mixin)《media queries in Sass 3.2》是CSS-Tricks里最火的文章之一,在这篇文章里Chris Coyier在借鉴a former idea by Mason Wendell和a former idea by Jeff Croft两文的基础上,如何使用sass实现响应式布局的断点管理。
命名断点是非常重要的,因为可以为抽象的数字赋予意义(你知道767px是什么意思吗,我不知道,直到我去使用小屏幕的时候才知道)。为什么Bootstrap和Foundation要使用变量呢,不也是为了给抽象的数字起个名字吗?
所以我们定义个mixin,接收断点名作唯一的参数,返回媒体查询的内容。准备好了吗?走起。
@mixin respond-to($breakpoint) {@if $breakpoint == &small& {@media (min-width: 767px) {@}} @else if $breakpoint == &medium& {@media (min-width: 992px) {@}} @else if $breakpoint == &large& {@media (min-width: 1200px) {@}}}然后,我们这样使用mixin。
@include respond-to(small) { ... }@include respond-to(medium) { ... }@include respond-to(large) { ... }这个方法是极好的(甄嬛体,老外也看?),原因有二:抽象数据有意义,大量断点集中管理。如果你想把“992px”改成“970px”,你不需要爬过每一个css文件,而只需更新mixin,然后全部更新。
但是也还有两个问题:
a.断点不容易从mixin里拿出来,放到配置文件里去。b.冗余太多。
3. 可配置的mixin(With a configurable mixin &)
&为了解决上面的两个问题,我们需要从断点mixin中抽出一个列表,只剩下mixin核心,然后这个列表就可以随便移动,或者扔到配置文件中。
然后,使用sass 3.3+中的maps,我们可以方便的使用关联的属性和属性值。
$breakpoints: ('small': 767px,'medium' : 992px,'large': 1200px);然后原来的mixin进行相应的修改
@mixin respond-to($breakpoint) {// Retrieves the value from the key$value: map-get($breakpoints, $breakpoint); // If the key exists in the
$value != null {// Prints a media query based on the
(min-width: $value) {@}} // If the key doesn't exist in the
{@warn &Unfortunately, no value could be retrieved from `#{$breakpoint}`. &+ &Please make sure it is defined in `$breakpoints` map.&;}}我们在修改mixin的同时也进行了一些提高,不要小看这些提高,我们加上了错误处理,如果在maps中没有找到断点值,将会弹出一个错误提示,这将便于我们开发过程中的调试。
我们让mixin变得更加精简,能很好的处理错误,同时我们去掉了一个功能——判断属性是否是你想要的(min-width,max-width,min-height等),这在移动优先的网页中没问题,因为我们仅仅需要min-width。但是,如果需要查询其他属性,我们需要把这个功能加回来。为了达到这个目的,我想到了一个非常优雅的解决方案,同时并不增加复杂性。
$breakpoints: ('small': ( min-width:767px ),'medium' : ( min-width:992px ),'large': ( min-width: 1200px ));@mixin respond-to($name) {// If the key exists in the
map-has-key($breakpoints, $name) {// Prints a media query based on the
#{inspect(map-get($breakpoints, $name))} {@}} // If the key doesn't exist in the
{@warn &Unfortunately, no value could be retrieved from `#{$breakpoint}`. &+ &Please make sure it is defined in `$breakpoints` map.&;}}在这里,我们主要做了三个事情
a. 检查查询的断点在map中存在不存在
b.如果存在,打印对应的媒体查询。
c.如果不在,进行错误提示。
简单吧,如果我们回顾前面的两个缺陷,已经不再有WET(Write Everything Twice))问题,也不再有不灵活的媒体查询。但是还有一个问题,不支持复杂的媒体查询。复杂指的是涉及多个组件的查询(e.g. screen and (min-width: 767px))。我们上面这些方案除了第一种变量之外都不能很好的解决这个问题。
4. 使用外部工具(With an external tool)
最后一个同样重要的是,如果不想创建自己的mixin,你可以使用外部的工具处理响应式布局的断点,有很多sass的扩展在这个方面做得很好。
SassMQby KaeligBreakpointby Mason Wendell and Sam RichardBreakupby Ben Scott
Breakpoint
No Query fallback
API complexity
very simple
Code complexity
very simple
Debug mode
Singularity.gs
基本上是这样,如果发现有没有涉及的,记得一定告诉我。
// Configuration$mq-responsive:$mq-static-breakpoint:$mq-breakpoints: (mobile:320px,tablet:740px,desktop: 980px,wide:1300px); // Exampleselector {@include mq($from: mobile) {property:}}
BreakPoints
$high-tide: 500$ex-presidents: 600px 800$surfboard-width: max-width 1000$surfboard-height: (min-height 1000px) (orientation portrait); selector {@include breakpoint($high-tide) {property:}}
$breakup-breakpoints: ('thin' '(max-width: 35.999em)','wide' '(min-width: 36em)','full' '(min-width: 61em)'); selector {@include breakup-block('thin') {property:}}
总结我们在这篇文章里看到的这么些个方案,都有长有短,每一个完美的方案。最后我觉得还是由你来决定怎么把握可用性和复杂性的平衡。
一句话,在合适的场合使用合适的工具。
------------------------------------------------------------------------------------------------------------------------------
That's it.&敬请留言,说说你的意见和建议。
----------------------------------------------------------
前端开发whqet,关注web前端开发,分享相关资源,欢迎点赞,欢迎拍砖。---------------------------------------------------------------------------------------------------------
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
SASS优化响应式布局断点管理相关信息,包括
的信息,所有SASS优化响应式布局断点管理相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
InternationalOA办公系统在线使用及使用采用SASS云模式 -石家庄OA系统-泛普软件
更新时间: 22:09:19&& 标签: && 【】&&【】
相关文章:
上一篇: &&下一篇:SaaS将让中小商户使用进销存系统不再高不可攀!
SaaS(Software as a Service,软件即服务)是一种通过Internet提供软件的模式,用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要,近年来,SaaS的兴起已经给传统套装软件厂商带来真实的压力。
目前,SaaS在一些领域已经得到较为充分的开发应用。如最早应用于邮件领域的网易邮箱、QQ邮箱等;随后在CRM领域出现的纷享销客,销售易等;以及最新应用于进销存领域秦丝进销存、客服领域的网易七鱼等。但是,SaaS在很多领域还未得到广泛应用,不难想象,该领域的发展前景是不可估量的。
SaaS模式的进销存软件特点:
一是安全性极高,风险很小。传统进销存管理软件都是套装式的,一套软件安装在一台固定的电脑上,企业的进销存管理数据也全部在那台电脑上,一旦发生电脑损毁的意外,后果难以想象。而SaaS软件是以云端大数据为技术基础,企业的所有数据都保存在云端,只要软件供应商使用的服务器稳定,就不会出现数据丢失的情况。目前云计算技术日趋成熟,数据放到云端能实时实地访问,没有任何限制,方便快捷。比如SaaS服装进销存应用服务商秦丝进销存使用的是阿里云服务器,后者是全球首家获得CSA STAR Certification云安全国际金牌认证的云服务供应商,全球领先的云计算和服务提供商。
二是成本极低,资金投入少。传统进销存管理软件主要通过卖软件方式获取利润,中小商户需要花费高昂的成本购买软件,并自行进行日常维护。而中小商户出于财力、物力和人力资源的限制,购置并专门管理一套复杂的进销存系统并不现实,这也导致诸多中小商户对进销存软件望而却步,只能依靠原始的记账方式或功能极其单一、不完善的软件进行进销存管理。基于SaaS模式的进销存管理系统消除了中心商户购买、构建和维护系统的麻烦,投入成本低。如SaaS进销存软件应用秦丝进销存中小商户可免费使用软件,手机移动端、PC电脑端、Pad平板端均支持使用,并可按需购买增值服务,包括配套硬件和对接其他平台的服务,如对接淘宝和天猫,对接物流公司,对接摄影公司等,费用成本很低。这比起传统软件动辄上万的购买费用能为中小商户省下一大笔资金。
三是产品稳定性高,技术服务响应快。很多中小商户并没有专业人员运营管理系统,他们无法对系统软件进行日常的维护,一旦出现问题只能联系供应商派人到公司进行维护,这会严重影响商户的日常运作,因等候维护会造成不必要的损失,增加诸多麻烦。SaaS软件的研发、升级、维护都由软件供应商全权负责,产品的稳定性高,功能不断完善。还有,中小商户使用场景多样,使用中可能遇到差异非常大的问题,从初级操作到专业人士根本不会遇到的初级错误等等,这就要求技术服务水平高、支持到位。市面上已有SaaS进销存软件能够结合客户需要,提供远程或上门服务,任何问题都有专属客服解决软件使用问题。
随着SaaS模式的进销存管理软件的兴起,安全可靠、成本低、操作简单、服务优质的进销存软件不再是中小商户遥不可及的事!
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点2,407被浏览460,344分享邀请回答49添加评论分享收藏感谢收起37559 条评论分享收藏感谢收起}

我要回帖

更多关于 美萍进销存管理系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信