摘要:列如代碼代碼就業協議書就業協議書,全稱是全國普通高等學校畢業生就業協議書,是由教育部高校學生司統一制訂的。根據國家規定,在達成就業意向后,畢業生用人單位學校三方必須簽訂全國普通高等學校畢業生就業協議書。
本文的目的主要是展示CSS變量是如何工作的。隨著Web應用程序變得越來越大,CSS變得越來越大,越來越多,而且很多時候都很亂,在良好的上下文中使用CSS變量,為您提供重用和輕松更改重復出現的CSS屬性的機制。
在“純粹的”CSS支持變量之前,我們有像Less和Sass這樣的預處理器。但是它們需要在使用前進行編譯,因此(有時)會增加額外的復雜性。
從我們最熟悉的語言JavaScript開始:在JavaScript中定義變量使用vars。
要聲明一個簡單的JavaScript var,如下內容:
var mainColor = red;
要聲明一個CSS變量,您必須在該var的名稱前添加一個雙短劃線。例如:
body{ --color:red; }
現在,為了使用CSS變量的值,我們可以使用var(...)函數。如下:
.demo{ background:var(--color); }
管理CSS變量的最簡單方法是將它們聲明為:root偽類。鑒于CSS變量遵循規則,就像任何其他CSS定義一樣,將它們放在:root中將確保所有選擇器都可以訪問這些變量。
:root{ --color:red; } .demo{ background:var(--color); } p{ color:var(--color); }
瀏覽器對CSS變量的支持還算不錯的。只是IE瀏覽器不支持。想查看瀏覽器兼容性的可以點擊這里,那么您將看到所有主流瀏覽器都支持開箱即用的CSS變量。無論是手機還是臺式機。
到目前為止,使用CSS變量的最佳候選者之一是管理網頁的顏色。我們可以將它們放在變量中,而不是一遍又一遍地復制和粘貼相同的顏色。如果有人要求我們更新特定的綠色陰影或使所有按鈕變為紅色而不是藍色,那么只需更改該CSS變量的值,就是這樣。您不必搜索和替換該顏色的所有實例。
列如:
CSS代碼
/*css_vars.css*/ :root { --primary-color: #ed6564; --accent-color: #388287; } html { background-color: var(--primary-color); } h3 { border-bottom: 2px solid var(--primary-color); } button { color: var(--accent-color); border: 1px solid var(--accent-color); } p { color: var(--accent-color); } /*base.css*/ * { margin: 0; padding: 0; box-sizing: border-box; } html { padding: 30px; font: normal 13px/1.5 sans-serif; color: #546567; background-color: var(--primary-color); } .container { background: #fff; padding: 20px; } h3 { padding-bottom: 10px; margin-bottom: 15px; } p { background-color: #fff; margin: 15px 0; } button { margin:0 5px; font-size: 13px; padding: 8px 12px; background-color: #fff; border-radius: 3px; box-shadow: none; text-transform: uppercase; font-weight: bold; cursor: pointer; opacity: 0.8; outline: 0; } button:hover { opacity: 1; } .center { text-align: center; }
HTML代碼
<div class="container"> <h3>就業協議書h3> <p>就業協議書,全稱是《全國普通高等學校畢業生就業協議書》,是由教育部高校學生司統一制訂的。根據國家規定,在達成就業意向后,畢業生、用人單位、學校三方必須簽訂《全國普通高等學校畢業生就業協議書》。就業協議書是具有一定的廣泛性和權威性,是學校制訂就業方案派遣畢業生、用人單位申請用人指標的主要依據,對簽約的三方都有約束力。p> <div class="center"> <button>查看詳情button><button>取消button> div> div>
點擊查看運行結果。
通常,您需要構建一些不同的組件變體。相同的基本樣式,略有不同。讓我們使用一些顏色不同的按鈕。典型的解決方案是創建一個基類,比如.btn并添加變體類。
.btn { border: 2px solid black;} .btn:hover { background: black;} .btn.red { border-color: red } .btn.red:hover { background: red }
現在使用它們像這樣:
<button class="btn">Hellobutton> <button class="btn red">Hellobutton>
但是,這會添加一些代碼重復。在.red變體上,我們必須將border-color和background設置為紅色。
這中情況可以使用CSS變量輕松修復。如下:
CSS代碼:
.btn{ border-radius:4px; text-align:center; padding:.5em; margin-bottom:0.5em; background:#fff; border:1px solid var(--color, black); } .btn:hover{ color:#fff; cursor:pointer; background:var(--color, black); } .btn.red{ --color:red; } .btn.green{ --color:green; } .btn.blue{ --color:blue; }
HTML代碼:
<div class="btn">HMOEdiv> <div class="btn red">HMOEdiv> <div class="btn green">HMOEdiv> <div class="btn blue">HMOEdiv>
如果我們想要創建更復雜的屬性值的快捷方式,CSS vars非常適合使用,因此我們不必記住它。CSS屬性,如box-shadow,transform和font或其他帶有多個參數的CSS規則就是完美的例子。我們可以將屬性放在變量中,以便我們可以通過更易讀的格式重用它。
例如:
:root { --tiny-shadow: 4px 4px 2px 0 rgba(0, 0, 0, 0.8); --animate-right: translateX(20px); } li { box-shadow: var(--tiny-shadow); } li:hover { transform: var(--animate-right); }
標準級聯規則也適用于CSS變量。因此,如果多次聲明自定義屬性,則css文件中最低的定義將覆蓋其上方的定義。下面的示例演示了動態操作用戶操作的屬性是多么容易,同時仍然保持代碼清晰簡潔。
CSS_var.css文件:
.orange-container { --main-text: 18px; }
.orange-container:hover { --main-text: 22px; }
.red-container:hover { --main-text: 26px; }
.title { font-size: var(--title-text); }
.content { font-size: var(--main-text); } .container:hover { --main-text: 18px; }
base.css文件:
* { margin: 0; padding: 0; box-sizing: border-box; } html { background: #eee; padding: 30px; font: 500 14px sans-serif; color: #333; line-height: 1.5; } .orange-container { background: orange; } .red-container { background: red; } .red-container, .orange-container { padding-top: 10px; padding-left: 50px; } .container { background: blue; padding: 20px; color: white; } p { transition: 0.4s; } .title { font-weight: bold; }
index.html文件:
<html> <head> <link rel="stylesheet" type="text/css" href="base.css"> <link rel="stylesheet" type="text/css" href="css_vars.css"> head> <body> <div class="orange-container"> Hover orange to make blue bigger. <div class="red-container"> Hover red to make blue even bigger. <div class="container"> <p class="content">Hover on the different color areas to change the size of this text and the title.p> div> div> div> body> html>
點擊查看運行結果。
CSS變量的一個好處是它的反應性。一旦我們更新它,任何具有CSS變量值的屬性也會更新。因此,只需幾行Javascript和CSS變量的智能使用,我們就可以制作一個主題切換器機制。
例如:
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>具有CSS變量的主題切換器title>
<style>
body {
background-color: var(--bg, #b3e5fc);
color: var(--bg-text, #37474f);
font-family: sans-serif;
line-height: 1.3;
}
.toolbar {
text-align: center;
}
style>
head>
<body>
<div class="toolbar">
<button value="dark">darkbutton>
<button value="calm">calmbutton>
<button value="light">lightbutton>
div>
<h2>Stackoverflow Questionh2>
<p>I would like to use an external javascript file in another javascript file. For example, I could store all my global variables
in a globals.js file and then call then from the website logic logic.js. Then in the index.html, i would insert the tag.
How do I use the globals.js inside the logic.js?
p>
<script>
var root = document.documentElement;
var themeBtns = document.querySelectorAll(".toolbar > button");
themeBtns.forEach(function (btn){
btn.addEventListener("click", handleThemeUpdate);
});
function handleThemeUpdate(e) {
switch (e.target.value) {
case "dark":
root.style.setProperty("--bg", "black");
root.style.setProperty("--bg-text", "white");
break;
case "calm":
root.style.setProperty("--bg", "#B3E5FC");
root.style.setProperty("--bg-text", "#37474F");
break;
case "light":
root.style.setProperty("--bg", "white");
root.style.setProperty("--bg-text", "black");
break;
}
}
script>
body>
html>
點擊查看運行結果
像CSS中幾乎所有的東西一樣,變量也非常簡單易用。以下是一些未包含在示例中的提示,但在某些情況下仍然非常有用:
1)css變量區分大小寫。下面的示例是兩個不同的變量:
:root { --color: blue; --COLOR: red; }
2)當您使用var()函數時,您可以使用第二個參數。如果找不到自定義屬性,將使用第二個參數為默認值:
width: var(--custom-width, 50%);
3)可以直接將CSS變量用于HTML:
<html style="--size: 600px"> body { max-width: var(--size) }
4) 可以在其他CSS var中使用CSS變量:
--base-red-color: #f00;
--background-gradient: linear-gradient(to top, var(--base-red-color), #222);
5) 可以使用媒體查詢使CSS變量成為條件。例如,以下代碼根據屏幕大小更改填充的值:
:root { --padding: 15px } @media screen and (min-width: 750px) { --padding: 30px }
6) 不要害怕在 clac() 函數中使用CSS變量。
--text-input-width: 5000px;
max-width: calc(var(--text-input-width) / 2);
當然,CSS變量不是靈丹妙藥。不會解決你在CSS領域遇到的每一個問題。但是,使用它使您的代碼更具可讀性和可維護性。此外,它極大地改善了大型文檔的易變性。只需將所有常量設置在一個多帶帶的文件中,當您只想對變量進行更改時,就不必跳過數千行代碼。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/2046.html
摘要:初次搭建總會碰上各種報錯以及紅黃屏報錯如果尚未搭建環境,請轉至官網搭建紅屏是程序無法正常運行,黃屏是程序可以運行但是可能存在一些潛在問題首次使用命令行工具來創建一個名為的新項目后運行后會報錯,如圖解決方法到你的已有項目中復制一份文件到 初次搭建ReactNative總會碰上各種報錯以及紅黃屏報錯如果尚未搭建環境,請轉至官網搭建https://reactnative.cn/docs/g....
摘要:貢獻者飛龍版本最近總是有人問我,把這些資料看完一遍要用多長時間,如果你一本書一本書看的話,的確要用很長時間。為了方便大家,我就把每本書的章節拆開,再按照知識點合并,手動整理了這個知識樹。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 貢獻者:飛龍版...
摘要:前言官方文檔地址中文文檔地址是一個的第三方庫,是的優秀實踐。初次了解是在讀林昊翻譯的設計模式與最佳實踐一書時。能力所限,已翻譯部分可能仍有字詞錯誤或語句不通順的地方,歡迎有能力的同學幫助糾正。就是其中的佼佼者。 前言 官方文檔地址: https://www.styled-components.com/ 中文文檔地址:https://github.com/hengg/styled-com...
摘要:前言官方文檔地址中文文檔地址是一個的第三方庫,是的優秀實踐。初次了解是在讀林昊翻譯的設計模式與最佳實踐一書時。能力所限,已翻譯部分可能仍有字詞錯誤或語句不通順的地方,歡迎有能力的同學幫助糾正。就是其中的佼佼者。 前言 官方文檔地址: https://www.styled-components.com/ 中文文檔地址:https://github.com/hengg/styled-com...
閱讀 713·2023-04-25 19:43
閱讀 3910·2021-11-30 14:52
閱讀 3784·2021-11-30 14:52
閱讀 3852·2021-11-29 11:00
閱讀 3783·2021-11-29 11:00
閱讀 3869·2021-11-29 11:00
閱讀 3558·2021-11-29 11:00
閱讀 6105·2021-11-29 11:00