質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

4回答

196閲覧

複数の要素以外及び、複数の要素のみのCSSの指定方法について

toll_tree

総合スコア199

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

1クリップ

投稿2019/06/12 07:51

CSSを指定する際に、効率的なやり方はないかと思い、ご助言を頂戴したく質問させて貰いました。
下記コードの「ul」要素の中の「li」の2番目と3番目以外に対してCSSを当てたい場合、逆に2番目と3番目のみにCSSを合てたい場合、効率的な方法としましては、どのような方法があるでしょうか?
qiitaの記事を参考に考えていたのですが、特定の要素番目や奇数番目、偶数番目などの指定方法はあったのですが、「2つの要素」以外などの指定方法が分からなかったもので...

html

1<div class="top_content"> 2 <ul class="page_list"> 3 <li> 4 <i class="black_circle_svg"></i> 5 <p>来院目的</p> 6 </li> 7 <li>»</li> 8 <li> 9 <i class="circle_svg"></i> 10 <p>予約日選択</p> 11 </li> 12 <li>»</li> 13 <li> 14 <i class="circle_svg"></i> 15 <p>予約時間選択</p> 16 </li> 17 <li>»</li> 18 <li> 19 <i class="circle_svg"></i> 20 <p>情報入力</p> 21 </li> 22 <li>»</li> 23 <li> 24 <i class="circle_svg"></i> 25 <p>入力確認</p> 26 </li> 27 <li>»</li> 28 <li> 29 <i class="circle_svg"></i> 30 <p>登録完了</p> 31 </li> 32 </ul> 33</div> 34
foobar810👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/12 08:04

>記事を参考に考えていたのですが 考えるだけではなく分からないなりに色々試してみれば良いのでは。 あれだけきちんと書いてある参考記事があるのに何も試していない(=質問本文にCSSがない)のは丸投げです。
m.ts10806

2019/06/12 08:48

複数指定できること、:not()を使うこと 全て私が最も早く書いていますが見えませんか? 次から全て見出し表記で書きましょうか?
m.ts10806

2019/06/12 09:01

あと、「苦手な人、嫌いな人以外にコメントをする」という失礼な行為をいつまで続けますか? コメントを強制はできませんが、あからさまな対応の違いを世界中の人が見ています。 明らかに間違った回答ならともかく高評価がきちんとついた回答に対して無反応って人としてどうなんでしょうか。 何度も言っているようにベストアンサーに選べとは露ほども思っていません。 が、無反応や無視を続ければ続けるほどあなたの質問者としての立場や資質が問われるのは間違いありません。 私が回答した質問はまだ解決済みになっていませんね。 https://teratail.com/questions/194052 これ以上待っていても回答は来ませんよ。私の回答で解決できる問題なので。
guest

回答4

0

役割が違うのであれば本来は別クラスを準備してそれぞれ当てるべきと思います。

あとは、
,で区切れば複数のクラスに同じ指定を当てることができるのでその仕様を利用するとか。

css

1.test1 2,.test2 3{ 4 color:#f00; 5}

:not()とか。

投稿2019/06/12 07:56

編集2019/06/12 07:58
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

  • 否定の場合は:not() を使うと良いですよ。

以下のセレクターで、2番目と3番目以外を示します。

css

1.page_list li:not(:nth-child(2)):not(:nth-child(3)){ 2 // 3}
  • 2番目から3番目を示したい場合は以下の様にします。動作原理については割愛しますが。

ただ、例えば、2番目と5番目のみ といった方法はちょっとわからないので、,で区切るのが手っ取り早いですね。

css

1.page_list li:nth-child(n+2):nth-child(-n+3) { 2 // 3}

投稿2019/06/12 08:08

編集2019/06/12 08:29
foobar810

総合スコア217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toll_tree

2019/06/12 08:13

ご回答ありがとうございます。 実は、これらを2、3番目以外、及び2,3番目のみを指定する際に2回のCSSの指定でできたら、html,cssの記述が少なくて済むかなと思ったものでして。 yamabe.jpさんの回答と併せますと、2回での記述が可能になりますかね...?
toll_tree

2019/06/12 08:16

しかし、特段2回で書くことにこだわらなくても良いかもしれませんね... そこまで記述量も差があるわけではないでしょうし...
toll_tree

2019/06/12 08:18

今、気づいたのですが、:not()は続けて書くことができるんですね。まとめて指定できるので、便利ですね。。。
foobar810

2019/06/12 08:25

2番目と3番目にスタイルを当てる場合の回答を追記しました。 確かに、カンマで複数書けば良いかもしれませんね。
foobar810

2019/06/12 08:33 編集

2番目と3番目と書きましたが、追記した回答についてはA番目〜B番目 の連続した範囲でないと使えないので、例えば 2と5といった値だとやはりカンマ区切りしか思いつきません。すみません。。
toll_tree

2019/06/12 08:32

いえ!参考になりました!ありがとうございました。
toll_tree

2019/06/12 08:49

すみません。そもそもお聞きするポイントを間違ってしまっていました。 自分が実現したかったのは、「li」の中の「i」要素に対してでして、2、3番目の「i」要素及びそれ以外の「i」要素に対してでした。せっかくご回答頂いたのに申し訳ないです。 しかし、頂いたご回答を元に、「i」要素に対し、2,3番目以外の設定を行おうと思い、 「.page_list li:not(:nth-child(2)):not(:nth-child(3)) i{ margin-left:16px;}」としてみたのですが、 2番目の「i」要素にはスタイルが適用されていないのですが、3番目の「i」要素には適用されてしまっています...自分の指定の仕方が間違っているのでしょうか。。。?
foobar810

2019/06/12 09:02

質問を誤解していました。その場合だと、i要素を含まないli要素なので以下の様になると思います。 .page_list li:not(:nth-child(3)):not(:nth-child(5)) i
toll_tree

2019/06/12 09:35

ありがとうございます。 解決いたしました。
guest

0

2と3を除く=1および4以降

CSS

1.page_list li:nth-child(1),.page_list li:nth-child(n+4){ 2color:red; 3}

追記

一応、2以上3以下を継承にして、それ以外に属性を設定してもいけます

CSS

1.page_list li{ 2color:red; 3} 4.page_list li:nth-child(n+2):nth-child(-n+3){ 5color:inherit; 6}

投稿2019/06/12 08:00

編集2019/06/12 08:35
yambejp

総合スコア114806

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toll_tree

2019/06/12 08:19

ご回答ありがとうございます。
guest

0

「2つの要素」以外などの指定方法が分からなかったもので...

考えを反対にして、まずは全ての要素にスタイルを当てて、スタイルを適用したくない要素にだけスタイルを解除するCSSを用意して適用する

投稿2019/06/12 07:58

hentaiman

総合スコア6415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/12 09:49

実は一番「効率的なやり方」ですね。 コードも短く済みそう
hentaiman

2019/06/12 10:10

フォローありがとうございます。恥ずかしながら効率とかは全く考えてませんでした。 質問者が自力で調べた情報だけでも考え方次第で対応出来るよって思って回答しただけという・・・ 自分だったら:~系のセレクター使って後々要素ズレて問題になるかもって考えるのも嫌なので、普通にCSS適用したいタグにだけクラス書いちゃいます。htmlの構成や要素数にもよるけど、きっと回答に書いたやり方もしないなあ・・・
m.ts10806

2019/06/12 11:55

まずできるやり方で実現してからというのは有用な考え方だと思いますし、むしろ試行錯誤の結果の再効率や機能をふんだんに使ったコードをいきなりもらっても混乱が増すだけだとも思います。 SQLとか配列の処理とか特にそういう場面多いですね。 理解するのに時間がかかって、結局そのときだけ分かったつもりになって自分でカスタマイズできなくて、逆に非効率になるように思います。 私も最初は適用したいクラスだけにって書こうと思ったのですけど、「効率的な」というところにちょっとだけシフトした形になりました。 コーディング効率的でいうとSCSSが浮かんだんですが、たぶん質問者さんにはまだ雲の上の概念なので伏せました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問