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

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

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

Pug(旧Jade)とは、HTMLを書くためのテンプレートエンジン。タグで囲む必要がないなど記述を省略できるため、HTMLの記述が簡単になります。ファイル分割も可能で、変数やループなど便利な機能も備わっています。

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

CSS

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

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

解決済

1回答

623閲覧

別クラスが存在するならタグの前に線が引きたいが出ない

takumino

総合スコア5

Pug

Pug(旧Jade)とは、HTMLを書くためのテンプレートエンジン。タグで囲む必要がないなど記述を省略できるため、HTMLの記述が簡単になります。ファイル分割も可能で、変数やループなど便利な機能も備わっています。

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

CSS

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

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

0グッド

0クリップ

投稿2020/02/01 02:18

発生している問題・エラーメッセージ

アクティブでで線が表示されない

該当のソースコード

.foo div ようこそ!ぷっちょワールドへ! .foo.active div ようこそ!ぷっちょワールドへ! .foo { padding: 50px; &:before { content: ""; border-top: 3px solid #959; width: 50%; transform: translateY(-10px); } &:before.active { border: 3px solid #ff0; } }

試したこと

ここに問題に対して試したことを記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

疑似要素は基本的に compound selector の末尾に置かれます (参考)。

<compound-selector> = [ <type-selector>? <subclass-selector>*
[ <pseudo-element-selector> <pseudo-class-selector>* ]* ]!

よって、 &:before.active という選択子は &.active:before と修正する必要があります。また、 ::before, ::after 疑似要素は継承不可能なプロパティでは初期値を取ります (参考)。

Tree-abiding pseudo-elements always fit within the box tree. They inherit any inheritable properties from their originating element; non-inheritable properties take their initial values as usual.

そのため、 ::before 疑似要素はインラインレベルの要素となっています。インラインレベルの要素に width プロパティは影響を及ぼさないため、 width プロパティを動作させるには display プロパティを inline-block, block などの値へ変更する必要があります。


以上の二点の修正を行うと、最終的なコードは以下のようになり、これは質問者さんの想定した動作になっていると思います (動作確認用リンク)。

Pug

1.foo 2 div ようこそ!ぷっちょワールドへ! 3 4.foo.active 5 div ようこそ!ぷっちょワールドへ!

SCSS

1.foo { 2 padding: 50px; 3 &:before { 4 display: block; 5 content: ""; 6 border-top: 3px solid #959; 7 width: 50%; 8 transform: translateY(-10px); 9 } 10 11 &.active:before { 12 border: 3px solid #ff0; 13 } 14}

投稿2020/02/01 03:12

s8_chu

総合スコア14731

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問