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

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つです。

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

Q&A

解決済

4回答

6157閲覧

クラス名ベースで:last-of-typeを利かせる方法はないでしょうか

nyoro

総合スコア16

CSS3

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

HTML5

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

HTML

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

CSS

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

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

0グッド

0クリップ

投稿2019/08/23 05:59

CSSの:last-of-typeが効かない

下記のソースコードで、赤3だけを赤色にしたいのですが、
この記述だと、CSSが当たってくれません。

HTML

<div class="text"> <p>赤1</p> </div> <div class="text"> <p>赤2</p> </div> <div class="text"> <p>赤3</p> </div> <div class="obstacle"> <p>邪魔</p> </div>

CSS

/*赤にならない!*/ .text:last-of-type{ color: red; }

なぜ効かないのか

https://takuo4649design.com/weblog/note/archives/14921
このページが詳しく説明してくれているのですが、仕様上この記述だと当たらないようです。

何か良い書き方はないでしょうか

この場合HTMLのマークアップを変えて、obstacleを外に出してあげればCSSの記述が効くようになるのですが、HTMLのソースコードをいじらずにCSSの記述だけで赤3の色だけ変更する方法はないでしょうか。

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

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

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

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

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

Yamato546

2019/08/24 11:43

今の所cssだけで全ブラウザに対応させる方法はない、htmlの構造が良くない、と答えが出ているのに解決済みにされないんですか?
nyoro

2019/08/24 12:11

有益な回答をしてくださる方が沢山いらっしゃるので、まだ未知の情報を提供してくれる可能性があると思い、解決済みにしていません。始めたばかりで勝手が分からないものですみません…。
guest

回答4

0

ベストアンサー

:last-of-type

:last-of-type に行き着いたのなら、あなたが必要としているのは type ではなく、class
:last-of-type ではなく、:last-of-class を導き出せます。
→ありません。

:nth-last-child()

疑似クラス記法 :nth-last-child(An+B [of S]? ) は、各 同胞群ごとに,その中で[ 選択子リスト S に合致するもの ]のうち,最後から A×n + B 個目( n ≥ 0 )の要素を表現する。 of S が省略された場合の既定の S は、 | になる。

CSS

1:nth-last-child(1 of .text)

※2019/8/23 現在の実装は「Safari 9」「iOS Safari 9」のみ

Re: nerd さん

投稿2019/08/23 13:16

think49

総合スコア18162

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

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

takopo

2019/08/23 14:17

こんなのできるんですね、勉強になりました。
nyoro

2019/08/24 02:38

すごいです!こんな方法があったんですね! でもSafariでしか効かないと実務では使えないですね。。笑
think49

2019/08/24 04:52

> でもSafariでしか効かないと実務では使えないですね。。笑 はい。 クロスブラウザを考慮すると、現在の実装でもCSSを適用可能なように、マークアップ(HTML)を変える必要があります。
guest

0

> .text:last-of-type{

は、すべてのタグのウチ最後のものがtextクラスなら・・・
という意味合いなので無理です

素直にjs(jQuery)で処理するのをおすすめします

投稿2019/08/23 06:05

yambejp

総合スコア114814

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

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

0

:last-of-typeは「最後のだけ適用するで」って言うクラスなので最後以外のものには適用できません。
:nth-last-of-type(n)は最後からn番目のやつだけ適用するものです。
例えば最後から2番目だと:nth-last-of-type(2)と指定します。

投稿2019/08/23 11:16

kyoya0819

総合スコア10429

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

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

kyoya0819

2019/08/23 22:42

失敬。:nth-last-of-type あまり対応してませんでした。 :nth-last-childだったら対応してるかな?
guest

0

解決のための回答にはなっていないのですが、
自分がいつもコーディングしているときは、同じ用途のコンポーネントをまとめる用の入れ物を作って、その中にまとめるようにしています。
例えばご質問の場合でしたら、text をまとめる用の wrap-text みたいな入れ物を作って、text 以外のものは入れないようにします。

<div class="wrap-text"> <div class="text"> <p>赤1</p> </div> <div class="text"> <p>赤2</p> </div> <div class="text"> <p>赤3</p> </div> </div> <div class="obstacle"> <p>邪魔</p> </div>

こうすることで、3列にしたいとか、偶数だけ変更したいというときに css で柔軟に変更できますし、コンポーネントを分離・拡張しやすいというのは運用面で見てもメリットがあります。
また見通しが良くなる分ミスが減りやすくなるのでおすすめです。

投稿2019/08/23 11:11

編集2019/08/24 08:19
takopo

総合スコア484

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問