LoginSignup
1
0

More than 3 years have passed since last update.

CSSのセレクタ適用条件(AND,ORなど)

Last updated at Posted at 2021-04-19

Bootstarpを使っていて

test.html
          <ul class="nav nav-pills style-dblock">
            <li class="nav-item">
              <a class="nav-link" href="#">Active</a>
            </li>
            <li class="nav-item">
              <a class="nav-link active" href="#">Link</a>
              <a class="active" href="#">Link</a>
            </li>
         </ul>

のactive単体ではCSS上何も記載がないのになぜ該当の箇所の背景色が染まるのかわからなくてしれべた結果

bootstrap.css
.nav-pills .nav-link.active,
.nav-pills
.show>.nav-link
{color:#fff;background-color:#007bff}

の「.nav-pills .nav-link.active」によって染まっていると知って、私の知らないCSSの使い方があると感じ調べてみました。

こちらの様式で試してみました。

test.html
  <div class="divcss">
    <p>テスト①</p>
  </div>
  <div class="divcss">
    <p class="pcss">テスト②</p>
  </div>
  <div>
    <p class="pcss ppcss">テスト③</p>
  </div>

○複数のセレクタのどれかに該当する(OR条件)

test.css
.divcss,.pcss{
  background-color: red;
}

スクリーンショット 2021-04-19 22.41.34.png

○子のセレクタで絞り込む

test.css
.divcss .pcss{
  background-color: red;
}

スクリーンショット 2021-04-19 22.42.01.png

○複数のセレクタで対象を絞り込む(AND条件)※子の空白がない形

test.css
.pcss.ppcss{
  background-color: red;
}

スクリーンショット 2021-04-19 22.44.47.png

調べてみるとその他にも色々あるようです。

test.css
/*直下の子*/
.pcss > .ppcss{
  background-color: red;
}

/*隣あう子*/
.pcss + .ppcss{
  background-color: red;
}

/*以降の子*/
.pcss ~ .ppcss{
  background-color: red;
}

覚えるのは大変だけど、しっかり使っていきたいです。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0