目次
rrリー
ホームページ ウェブフロントエンド htmlチュートリアル レス構文 (2) 混合属性_html/css_WEB-ITnose

レス構文 (2) 混合属性_html/css_WEB-ITnose

Jun 24, 2016 am 11:52 AM

概要:

先ほどはlessの変数と拡張構文を紹介しましたが、今日は混合属性(Mixin)について勉強します。ミキシングは、less のもう 1 つの機能と言えます。共通のプロパティを一緒に定義し、使用するときにこのミキシング プロパティを直接呼び出すことができます。

ミキシング:

LESS では、いくつかの共通の属性セットをセレクターとして定義し、これらの属性を別のセレクターで呼び出すことができます。 例:

.a, #b {  color: red;}.mixin-class {  .a();}.mixin-id {  #b();}
ログイン後にコピー

コンパイル後

.a, #b {  color: red;}.mixin-class {  color: red;}.mixin-id {  color: red;}
ログイン後にコピー

注: を呼び出すとき。混合する場合は、括弧を含めても含めなくても構いません。次のものも正しいです:

.a, #b {  color: red;}.mixin-class {  .a;}.mixin-id {  #b;}
ログイン後にコピー

ミックスを定義するだけの場合は、次のようにセレクターの後に括弧を追加できます:

.my-mixin {  color: black;}.my-other-mixin() {  background: white;}.class {  .my-mixin;  .my-other-mixin;}
ログイン後にコピー

コンパイル後に、brackets.my-other を追加します。 -mixin() はコンパイルされません。

.my-mixin {  color: black;}.class {  color: black;  background: white;}
ログイン後にコピー

CSS クラス、ID、または要素属性セットは、同じ方法でユニバーサル セレクター内に導入できます。

名前空間:

より複雑なセレクターで属性を混合したい場合は、複数の ID またはクラスをスタックできます。以下のように:

#outer {  .inner {    color: red;  }}
ログイン後にコピー

この混合属性を使用したい場合は、次の 4 つが同等です。

.c{    #outer > .inner;}.c{    #outer > .inner();}.c{    #outer.inner;}.c{    #outer.inner();}
ログイン後にコピー

を避けるために、混合属性を ID の下に定義できます。他のミックスと競合します。

Keyword ! important:

混合属性を使用した後に ! important キーワードを追加すると、混合内のすべての属性がキーワード ! important とともに追加されます。例:

.foo (@bg: #f5f5f5, @color: #900) {  background: @bg;  color: @color;}.unimportant {  .foo(1);}.important {  .foo(2) !important;}
ログイン後にコピー

Compiled

.unimportant {  background: #f5f5f5;  color: #900;}.important {  background: #f5f5f5 !important;  color: #900 !important;}
ログイン後にコピー

パラメータとの混合:

混合プロパティでは、次のように括弧を介してパラメータを渡すこともできます:

.border-radius(@radius) {  -webkit-border-radius: @radius;     -moz-border-radius: @radius;          border-radius: @radius;}
ログイン後にコピー

使用するときに渡すだけです次のように、パラメータを 1 つだけ指定します。

rrree

もちろん、パラメータにデフォルト値を指定して、使用時に値を渡すかどうかを指定することもできます。以下のように:

#header {  .border-radius(4px);}.button {  .border-radius(6px);}
ログイン後にコピー

値を渡さない場合は、デフォルト値の 5px が使用されます。

もちろん、次のように複数のパラメータを渡すこともできます:

.border-radius(@radius: 5px) {  -webkit-border-radius: @radius;     -moz-border-radius: @radius;          border-radius: @radius;}
ログイン後にコピー

コンパイル後

.mixin(@color) {  color-1: @color;}.mixin(@color; @padding:2) {  color-2: @color;  padding-2: @padding;}.mixin(@color; @padding; @margin: 2) {  color-3: @color;  padding-3: @padding;  margin: @margin @margin @margin @margin;}.some .selector div {  .mixin(#008000);}
ログイン後にコピー

コンパイル結果からわかるように、less には関数のオーバーロードの機能もあります。同じミックス属性名を異なるパラメーターで定義し、 .mixin(#008000); を呼び出すと、最初と 2 番目のミックスは両方とも一致しますが、3 番目のミックスにはパラメーター @padding の値がないため、3 番目のミックスは一致します。属性は参照されません。

次のように複数の値を渡すだけでなく、属性名を指定して値を渡すこともできます:

.some .selector div {  color-1: #008000;  color-2: #008000;  padding-2: 2;}
ログイン後にコピー

Keyword @arguments:

@arguments には特別な意味があり、js の引数と同様に、すべてが含まれます混合属性に渡されるパラメータは次のとおりです:

.mixin(@color: black; @margin: 10px; @padding: 20px) {  color: @color;  margin: @margin;  padding: @padding;}.class1 {  .mixin(@margin: 20px; @color: #33acfe);}.class2 {  .mixin(#efca44; @padding: 40px);}
ログイン後にコピー

Compiled

.box-shadow(@x: 0; @y: 0; @blur: 1px; @color: #000) {  -webkit-box-shadow: @arguments;     -moz-box-shadow: @arguments;          box-shadow: @arguments;}.big-block {  .box-shadow(2px; 5px);}
ログイン後にコピー

Keyword @reset:

@arguments とは異なり、@reset には指定されたパラメータ以外のパラメータが含まれます。例:

.big-block {  -webkit-box-shadow: 2px 5px 1px #000;     -moz-box-shadow: 2px 5px 1px #000;          box-shadow: 2px 5px 1px #000;}
ログイン後にコピー

パターン マッチング:

場合によっては、渡したパラメータに基づいてミックスインに次のような異なる処理を実行させたいことがあります。

.mixin(@a; @rest...) {   // @rest包含了@a之后的参数   // @arguments包含了所有参数}
ログイン後にコピー

コンパイル後

.mixin(dark; @color) {  color: darken(@color, 10%);}.mixin(light; @color) {  color: lighten(@color, 10%);}.mixin(@_; @color) {  display: block;}.class {  .mixin(@switch; #888);}
ログイン後にコピー

関数として Mixin を使用する:

mixin を関数として使用する場合、関数を呼び出した後、変数は、 mixin 属性を呼び出す要素は、同じ変数自体を定義します。例:

@switch: light;
ログイン後にコピー

コンパイル後

.class {  color: #a2a2a2;  display: block;}
ログイン後にコピー

次の式を使用します:

.mixin() {  @width:  100%;  @height: 200px;}.caller {  .mixin();  width:  @width;  height: @height;}
ログイン後にコピー

コンパイル後

rrリー

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

HTML、CSS、およびJavaScript:Web開発者に不可欠なツール HTML、CSS、およびJavaScript:Web開発者に不可欠なツール Apr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

See all articles