CSSをわかりやすく記述するLESSの使い方
フロントエンドをしないといけなくなるとどうしてもデザインの勉強が必要になってきます。
ですが、今までシステムにデザインは関係なーいと思ってたけど、どうも今後はデザインもデザイナーができれば良いって感じでもなさそうです。
なのでLESSっていうCSSをわかりやすくしてくれるやつを勉強します。
head部に以下を記述します。こうすることで拡張子がlessのファイルにLESSの文法が書けるようになるみたいです。
<link rel="stylesheet/less" type="text/css" href="styles.less" /> <script src="//cdnjs.cloudflare.com/ajax/libs/less.js/3.9.0/less.min.js" ></script>
styles.lessっていうファイルに今回はLESSを書いていきます。
cssと違ってネストすることができます。例えば以下のようなhtmlがあるとします。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link rel="stylesheet/less" type="text/css" href="styles.less" />
<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/3.9.0/less.min.js" ></script>
<title>LESS</title>
</head>
<body>
<ul class="aaa">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
ulのclass属性にaaaを指定しているだけです。
入れ子にできる
liのような子のセレクタを入れ子にすることができます。
.aaa{
li{
list-style: none;
&:nth-child(1){
left: 10%;
width: 80px;
height: 80px;
background:black;
}
}
}
&(コンビネータ)を使う
上でも&:を使っていますが、これは親要素と子要素をつなげてくれます。
li:nth-child(1) {~}としているのと同じになります。
list-style: none;はリストの中点を非表示にしているだけです。
nth-childはul,liでしか使ったことがありませんが、兄弟要素に対して色々出来るようです。
li要素を2つ表示してみます。
.aaa{
li{
position: absolute;
list-style: none;
&:nth-child(1){
left: 10%;
width: 80px;
height: 80px;
background:black;
}
&:nth-child(2){
left: 40%;
width: 80px;
height: 80px;
background:white;
}
}
}
position: absolute;を入れて絶対位置を指定します。
LESSでは変数が定義できる
LESSでは変数が定義できてプログラムっぽくなっています。
変数名は頭に@を付けます。
@width=80px; @height=80px;
などです。
上のサンプルで変数を使ってみます。動きは全く同じになっているはずです。
@width=80px;
@height=80px;
.aaa{
li{
position: absolute;
list-style: none;
&:nth-child(1){
left: 10%;
width: @width;
height: @heigth;
background:black;
}
&:nth-child(2){
left: 40%;
width: @width;
height: @height;
background:white;
}
}
}
変数で関数を使用する
LESSでは関数も使えるので便利です。
同じような記述で値だけ異なるような場合は関数を作成したほうが良いかもしれません。
body{
background: #00CCFF;
}
@left:0%;
@width:0px;
@height:0px;
@bgcolor:white;
.aaa{
li{
position: absolute;
list-style: none;
// 関数
.config(@left: 30%, @width: 0px,@height: 0px,@bgcolor: white) {
left: @left;
width: @width;
height: @height;
background: white;
}
&:nth-child(1){
.config(10%, 50px, 50px, black);
}
}
}
もっと知りたい方は公式サイトをご覧ください。

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント