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

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

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

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

HTML5

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

CSS

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

Q&A

解決済

2回答

2901閲覧

ひし形の背景にひし形をつけたい時、transform: skewY(-●deg)を:beforeにかける意味 CSS3

bariko

総合スコア31

CSS3

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

HTML5

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

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

CSS

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

0グッド

1クリップ

投稿2019/08/28 01:21

編集2019/08/28 03:20

https://www.invoy.jp/?gclid=CjwKCAjwqZPrBRBnEiwAmNJsNitubrF6xhQTahDsMDNPKyXnFdTgva57tvGhP1mgega8My6Piw_OJRoCaIsQAvD_BwE

ここのサイトは、ヘッダー部分の背景色に緑や、途中にグレーの背景色を使っていると思うのですが、背景色の色が塗られている部分が、ひし形みたいな正方形や長方形以外になってますよね?
ここの部分について、すごく不思議なのでぜひ教えていただけましたら幸いです!

デベロッパーツールで見ると、

CSS3

1.product_site_content_row_01:before { 2 content: ''; 3 position: absolute; 4 top: 0; 5 left: 0; 6 width: 100%; 7 height: 100%; 8 -webkit-transition: all 0.25s ease; 9 transition: all 0.25s ease; 10 background: linear-gradient(153deg, #64B200, #AFC114); 11 -webkit-transform: skewY(-6deg); 12 transform: skewY(-6deg); 13 z-index: -1; 14}

こんなところにグラデーションの塗る色が設定されてますが、なぜ:beforeに色の指定があるのか分からないです。

:beforeの必要性がわからないので、デベロッパーツールで.product_site_content_row_01に直接塗りとz-index: -1;で後ろに出すっていうのをやってみたら、ナビゲーションメニューの形状がひし形に歪んでしまい、それが内包する全ての要素が全部歪むならわかるのですが、なぜかproduct_site_content_row_01の中でもproduct_site_content_container_01クラス内の「0円でカンタンな請求書」や請求書が3枚並んでいる画像、「今すぐ無料ではじめる」ボタンは歪みません。

どうしてなんでしょうか?

すごく基礎的な質問で恐縮ですが、よろしくお願い致します。

(追記)ちゃんと内包するすべての要素が歪みました。

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

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

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

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

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

Lhankor_Mhy

2019/08/28 03:05

試してみましたが、「0円でカンタンな請求書」や請求書が3枚並んでいる画像はゆがみました。「今すぐ無料ではじめる」ボタンはゆがみませんでした。
guest

回答2

0

背景に傾斜をつける方法をほかにもありますが、
今回の参考にされているサイトでは

css

1transform: skewY(-6deg);

というもので傾斜をつけています。

このプロパティはブロックレベル要素、インライン要素が対象になります。

よって、.product_site_content_row_01に直接設定するとその中の対象要素が斜めになります。

こういうことが起こらないように:beforeに設定しています。

プロパティの詳しい説明はこちらを見てください。

投稿2019/08/28 03:13

beginner_t

総合スコア716

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

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

0

ベストアンサー

まず前提として、参考サイトにあるような歪んだ背景をCSSの背景指定だけで表現するのは困難です。
そのためHTMLの要素をCSS(transform)で歪め、それをpositionで配置することで背景を表現させています。

なぜ:beforeに色の指定があるのか分からないです。

背景用のHTML要素に擬似要素(:beforeや:after)を使用しているため色の指定が必要になります。
必要なのはHTML要素なので必ずしも疑似要素を使う必要はありません。
例えば以下のようなコードでも同様に背景を作ることは可能です。

html

1<head> 2 <style> 3 .product_site_content_row_01 > .bg { 4 /* 参考サイトと同様のコードのため割愛 */ 5 } 6 </style> 7</head> 8<div class="product_site_content_row_01"> 9 <div class="bg"></div> 10</div>

ただ、何も要素を持たない空要素はあまり好ましくないので疑似要素を使っているのでしょう。

product_site_content_container_01クラス内の「0円でカンタンな請求書」や請求書が3枚並んでいる画像、「今すぐ無料ではじめる」ボタンは歪みません。

.product_site_content_row_01に背景の疑似要素と同じCSSを当ててみましたが内包する要素全て歪みました、こちらは反映してみた対象が異なっていたのではないでしょうか?

投稿2019/08/28 03:09

nt4c

総合スコア768

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

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

bariko

2019/08/28 03:14

なるほど。とても勉強になりました。 また、異なる書き方まで教えていただき本当にありがとうございました。 自分でも試してみます。
bariko

2019/08/28 03:15

ちなみに空要素が好ましくない理由というのはどんなものがあるのでしょうか?今まで知らずにやってしまっていたので、教えていただけるととても嬉しいです。
nt4c

2019/08/28 03:23

HTMLは文章に意味付けを行うマークアップ言語です。背景を作るといったようなデザイン目的で情報を持たない空要素を作るのは本来の目的から逸れてしまうのであまり好ましく思われていません。 使用厳禁というわけではないので頭の片隅に意識しておくレベルで問題ないと思います。
bariko

2019/08/28 07:51

丁寧に回答いただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問