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

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

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

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

CSS

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

Q&A

解決済

4回答

1043閲覧

動く図形の上に文字を固定させたいです。

ramarama

総合スコア5

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/07/28 06:53

編集2020/07/28 06:57

![イメージ説明

前提・実現したいこと

回転する星をCSSで作れましたが、その上の中央に数字を固定させたいです。

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

後ろに隠れているのか、文字が出てきません。

該当のソースコード

HTML <div class="reason-one"> <div class="star-fav"> <p class="number">1</p> </div> </div> CSS .star-fav { margin-top: 100px; margin-left: 40%; border-left: 100px solid transparent; border-right: 100px solid transparent; border-bottom: 70px solid #f2c820; display: block; height: 0; width: 0; position: relative; animation: anim-star-fav-rotate 30s linear infinite, anim-star-fav-opacity 1s linear infinite; } .star-fav:before, .star-fav:after { border-left: 100px solid transparent; border-right: 100px solid transparent; border-bottom: 70px solid #f2c820; content: ''; display: block; height: 0; left: -100px; position: absolute; top: 0; width: 0; } .star-fav:before { transform: rotate(71deg); } .star-fav:after { transform: rotate(-71deg); } @keyframes anim-star-fav-rotate { from { transform: rotate(35deg);} to { transform: rotate(395deg);} } @keyframes anim-star-fav-opacity { 0% { opacity: 1;} 50% { opacity: 0.5;} 100% { opacity: 1;} } .reason-one p.number:before{ text-align:center; margin:5%; padding:10px; position: absolute; } .reason-one p.number { position: absolute; width: 100%; left: 0; top: calc(50% - 25px); text-align: center; color: darkblue; font-weight: bold; font-size: 50px; line-height: 50px; }

試したこと

ここのサイトに類似質問があったので、beforeやら、positionを使ったのですが、上手くいきませんでした。

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

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

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

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

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

guest

回答4

0

ベストアンサー

方法は2つあります。

  1. 逆回転

css

1.reason-one p.number{ 2 /* ~ 略 */ 3 animation:anim-number 30s linear infinite; /* ←これを追加 */ 4} 5 6@keyframes anim-number { 7 0% { transform: rotate(-35deg);} 8 100% { transform: rotate(-395deg);} 9}

2.星から外す

html

1<div class="reason-one"> 2 <div class="wrap"> 3 <div class="star-fav"></div> 4 <p class="number">1</p> 5 </div> 6</div>

css

1.wrap { 2 margin: 0 auto; 3 height: ○○px; 4 position: relative; 5 width: ○○px; 6}

のように、星と文字を別にし
ラップと星が重なるように位置とサイズを調整。

お好みで^^

投稿2020/07/28 08:50

-millmill-

総合スコア676

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

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

ramarama

2020/07/28 09:15

できました!!!!さすがですね!!!ありがとうございます。初めてこのサイトを利用しました^^ご縁があり感謝します。
ramarama

2020/08/01 19:34

先日はありがとうございました。 すみませんが、良かったら最新の質問のものお分かりでしたら教えていただきたいです。
guest

0

z-index で重なり順を指定します。

css

1.star-fav { 2 z-index: 1; 3 /* 以下略 */ 4} 5 6.reason-one p.number{ 7 z-index: 10; 8 /* 以下略 */ 9}

これで動くと思います。
テキストの位置は調整してくださいね^^


おまけ

  1. 下の::before に content: ''; が入っておらず無意味な指定になっています。
    不要なら削除、必要なら content: ''; を追加してください

  2. css3では疑似クラスと分ける為に疑似要素(before とか after)は :: (コロン2つ)です。
    1つでも適用されますが、:: (コロン2つ)に慣れた方が良いかも? です^^

css

1.reason-one p.number::before{ 2 text-align:center; 3 margin:5%; 4 padding:10px; 5 position: absolute; 6}

投稿2020/07/28 08:18

-millmill-

総合スコア676

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

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

ramarama

2020/07/28 08:28 編集

すごい!!このzも試したのに上手くいかなかったのはきっと入れる場所を間違えたんですね!これから位置調整していくのですが、この数字までも回転してしまいます。固定するになどうしたら正解ですか? あと、コロンの指定ありがとうございます。
-millmill-

2020/07/28 08:50

下に回答を載せています^^;
guest

0

これから位置調整していくのですが、この数字までも回転してしまいます。固定するになどうしたら正解ですか?

数字は逆回転させればいいのでは。

css

1.star-fav { 2 margin-top: 100px; 3 margin-left: 40%; 4 border-left: 100px solid transparent; 5 border-right: 100px solid transparent; 6 border-bottom: 70px solid #f2c820; 7 display: block; 8 height: 0; 9 width: 0; 10 position: relative; 11 animation: 12 anim-star-fav-rotate 30s linear infinite, 13 anim-star-fav-opacity 1s linear infinite; 14} 15 16.star-fav::before, 17.star-fav::after { 18 border-left: 100px solid transparent; 19 border-right: 100px solid transparent; 20 border-bottom: 70px solid #f2c820; 21 content: ''; 22 display: block; 23 height: 0; 24 left: -100px; 25 position: absolute; 26 top: 0; 27 width: 0; 28} 29 30.star-fav::before { 31 transform: rotate(71deg); 32} 33 34.star-fav::after { 35 transform: rotate(-71deg); 36} 37 38@keyframes anim-star-fav-rotate { 39 from { transform: rotate(35deg);} 40 to { transform: rotate(395deg);} 41} 42 43@keyframes anim-star-fav-rotate-rev { 44 from { transform: rotate(325deg);} 45 to { transform: rotate(-35deg);} 46} 47 48@keyframes anim-star-fav-opacity { 49 0% { opacity: 1;} 50 50% { opacity: 0.5;} 51 100% { opacity: 1;} 52} 53 54.reason-one p.number:before{ 55 text-align:center; 56 margin:5%; 57 padding:10px; 58 position: absolute; 59} 60 61.reason-one p.number 62{ 63 position: absolute; 64 width: 50px; 65 left: -25px; 66 z-index: 1; 67 top: -35px; 68 text-align: center; 69 color: darkblue; 70 font-weight: bold; 71 font-size: 50px; 72 line-height: 50px; 73 animation: anim-star-fav-rotate-rev 30s linear infinite; 74}

CodePen

投稿2020/07/28 08:49

編集2020/07/28 08:52
hatena19

総合スコア34075

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

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

0

SVGでやるのが汎用的で楽だとおもいます

sample

投稿2020/07/28 07:15

編集2020/07/28 09:06
yambejp

総合スコア116724

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

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

yambejp

2020/07/28 07:17

そうでないなら、別にdivやpをつくって position:absoluteで位置を指定してやるとか・・・
yambejp

2020/07/28 09:06

SVGのサンプルあげときました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問