{"id":838,"date":"2021-12-18T20:06:24","date_gmt":"2021-12-18T12:06:24","guid":{"rendered":"https:\/\/blog.cauchyschwarz.com\/?p=838"},"modified":"2021-12-18T20:06:29","modified_gmt":"2021-12-18T12:06:29","slug":"sass","status":"publish","type":"post","link":"https:\/\/blog.cauchyschwarz.com\/?p=838","title":{"rendered":"sass"},"content":{"rendered":"\n<p>Sass: Syntactically Awesome StyleSheets<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69e0c4de0017b\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69e0c4de0017b\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=838\/#Preprocessing\" >Preprocessing<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=838\/#Variables\" >Variables<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=838\/#Nesting\" >Nesting<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=838\/#Partials_And_Import\" >Partials And Import<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=838\/#Mixins\" >Mixins<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=838\/#ExtendInheritance\" >Extend\/Inheritance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=838\/#Operators\" >Operators<\/a><\/li><\/ul><\/nav><\/div>\n<h1 class=\"wp-block-heading\" id=\"preprocessing\"><span class=\"ez-toc-section\" id=\"Preprocessing\"><\/span>Preprocessing<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>Sass\u4f5c\u4e3aCSS\u7684\u9884\u5904\u7406\u5668\u4f7f\u5f97\u53ef\u4ee5\u5728\u7f16\u5199CSS\u7684\u8fc7\u7a0b\u4e2d\u4f7f\u7528\u53d8\u91cf\u3001\u5d4c\u5957\u3001\u6df7\u5408\u3001\u7ee7\u627f\u7b49\u7279\u6027\u3002<br>\u6700\u76f4\u63a5\u7684\u4f7f\u7528Sass\u7684\u65b9\u5f0f\uff1a<br><em>sass input.scss output.css<\/em><br>\u4e5f\u53ef\u4ee5\u4f7f\u7528_&#8211;watch_\u6807\u5fd7\u6765\u76d1\u89c6\u6587\u4ef6\u6216\u8005\u6587\u4ef6\u5939\uff1a<br><em>sass &#8211;watch app\/sass:public\/stylesheets<\/em><\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"variables\"><span class=\"ez-toc-section\" id=\"Variables\"><\/span>Variables<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>Sass\u4f7f\u7528&nbsp;<em>$<\/em>&nbsp;\u7b26\u53f7\u6765\u8868\u793a\u53d8\u91cf\u3002\u4f8b\u5982\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">$font-stack: Helvetica, sans-serif;\n$primary-color: #333;\n\nbody {\n    font: 100% $font-stack;\n    color: $primary-color;\n}\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"nesting\"><span class=\"ez-toc-section\" id=\"Nesting\"><\/span>Nesting<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>HTML\u6587\u4ef6\u5b58\u5728\u4e00\u79cd\u5d4c\u5957\u7684\u5c42\u6b21\u7ed3\u6784\uff0c\u800cCSS\u5e76\u6ca1\u6709\u3002Sass\u5141\u8bb8\u4f60\u7684CSS\u9009\u62e9\u5668\u9075\u5faa\u4f60\u7684HTML\u7684\u89c6\u89c9\u4e0a\u7684\u5c42\u6b21\u7ed3\u6784\u3002<br>\u4e0b\u9762\u662f\u4e00\u4e2a\u5178\u578b\u7684\u7f51\u7ad9\u5bfc\u822a\u7684\u4f8b\u5b50\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">nav {\n  ul {\n    margin: 0;\n    padding: 0;\n    list-style: none;\n  }\n\n  li { display: inline-block; }\n\n  a {\n    display: block;\n    padding: 6px 12px;\n    text-decoration: none;\n  }\n}\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"partials-and-import\"><span class=\"ez-toc-section\" id=\"Partials_And_Import\"><\/span>Partials And Import<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u4e3a\u4e86\u652f\u6301\u6a21\u5757\u5316\uff0c\u4f60\u53ef\u5c06\u4e00\u4e9bCSS\u4ee3\u7801\u7247\u6bb5\u653e\u5728\u5355\u72ec\u7684\u4ee5\u4e0b\u5212\u7ebf\u5f00\u5934\u547d\u540d\u7684\u6587\u4ef6\u4e2d\uff0c\u8981\u5f15\u7528\u8fd9\u4e9b\u4ee3\u7801\u7247\u6bb5\u65f6\u53ef\u901a\u8fc7&nbsp;<em>@import<\/em>&nbsp;\u5f15\u7528\u3002\u5f15\u7528\u76ee\u5f55\u4e5f\u662f\u53ef\u4ee5\u7684\u3002<br>\u4f8b\u5982\u6211\u4eec\u6709\u5982\u4e0b\u7684CSS\u7247\u6bb5&nbsp;<em>reset.scss<\/em>&nbsp;\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">\/\/ _reset.scss\n\nhtml,\nbody,\nul,\nol {\n   margin: 0;\n  padding: 0;\n}\n<\/code><\/pre>\n\n\n\n<p>\u5728\u53e6\u4e00\u4e2ascss\u6587\u4ef6\u4e2d\u6211\u4eec\u9700\u8981\u5f15\u7528\u5b83\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">\/\/ base.scss\n\n@import 'reset';\n\nbody {\n  font: 100% Helvetica, sans-serif;\n  background-color: #efefef;\n}\n<\/code><\/pre>\n\n\n\n<p>\u5f15\u7528\u65f6\u4e0d\u9700\u8981\u52a0\u6269\u5c55\u540d\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"mixins\"><span class=\"ez-toc-section\" id=\"Mixins\"><\/span>Mixins<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u4ee5\u6211\u7684\u7406\u89e3Mixin\u7c7b\u4f3c\u4e8eC\u9884\u5904\u7406\u4e2d\u7684\u5b8f\u3002\u5982\u4e0b\u9762\u7684\u4f8b\u5b50\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">@mixin border-radius($radius) {\n  -webkit-border-radius: $radius;\n     -moz-border-radius: $radius;\n      -ms-border-radius: $radius;\n          border-radius: $radius;\n}\n\n.box { @include border-radius(10px); }\n<\/code><\/pre>\n\n\n\n<p>\u751f\u6210\u7684scss\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">.box {\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  -ms-border-radius: 10px;\n  border-radius: 10px;\n}\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"extendinheritance\"><span class=\"ez-toc-section\" id=\"ExtendInheritance\"><\/span>Extend\/Inheritance<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\u901a\u8fc7\u4f7f\u7528&nbsp;<em>@extend<\/em>&nbsp;\u53ef\u4ee5\u8ba9\u4e00\u4e2a\u9009\u62e9\u5668\u5171\u4eab\u53e6\u4e00\u4e2a\u9009\u62e9\u5668\u7684\u5c5e\u6027\u3002\u5982\u4e0b\u9762\u7684\u4f8b\u5b50\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">.message {\n  border: 1px solid #ccc;\n  padding: 10px;\n  color: #333;\n}\n\n.success {\n  @extend .message;\n  border-color: green;\n}\n\n.error {\n  @extend .message;\n  border-color: red;\n}\n\n.warning {\n  @extend .message;\n  border-color: yellow;\n}\n<\/code><\/pre>\n\n\n\n<p>\u751f\u6210\u7684scss\u6587\u4ef6\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">.message, .success, .error, .warning {\n  border: 1px solid #cccccc;\n  padding: 10px;\n  color: #333;\n}\n\n.success {\n  border-color: green;\n}\n\n.error {\n  border-color: red;\n}\n\n.warning {\n  border-color: yellow;\n}\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"operators\"><span class=\"ez-toc-section\" id=\"Operators\"><\/span>Operators<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>Sass\u652f\u6301\u4e00\u4e9b\u6807\u51c6\u7684\u6570\u5b66\u8fd0\u7b97\u7b26\uff0c\u5982+,-,*,\/\u548c%\u3002\u5982\u4e0b\u9762\u7684\u4f8b\u5b50\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">.container { width: 100%; }\n\n\narticle[role=\"main\"] {\n  float: left;\n  width: 600px \/ 960px * 100%;\n}\n\naside[role=\"complimentary\"] {\n  float: right;\n  width: 300px \/ 960px * 100%;\n}\n<\/code><\/pre>\n\n\n\n<p>\u751f\u6210\u7684CSS\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">.container {\n  width: 100%;\n}\n\narticle[role=\"main\"] {\n  float: left;\n  width: 62.5%;\n}\n\naside[role=\"complimentary\"] {\n  float: right;\n  width: 31.25%;\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Sass: Syntactically Awesome StyleSheets Preprocessing Sass\u4f5c\u4e3aCSS\u7684\u9884\u5904\u7406\u5668\u4f7f\u5f97\u53ef\u4ee5\u5728\u7f16\u5199CSS\u7684\u8fc7\u7a0b\u4e2d\u4f7f\u7528\u53d8\u91cf\u3001\u5d4c\u5957\u3001\u6df7\u5408\u3001\u7ee7\u627f\u7b49\u7279\u6027\u3002\u6700&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[94,90],"class_list":["post-838","post","type-post","status-publish","format-standard","hentry","category-10","tag-sass","tag-web"],"_links":{"self":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts\/838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=838"}],"version-history":[{"count":1,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts\/838\/revisions"}],"predecessor-version":[{"id":839,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts\/838\/revisions\/839"}],"wp:attachment":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}