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

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

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

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

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

Webサイト

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

HTML

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

Q&A

解決済

1回答

3220閲覧

cssのみで「続きを読む(もっと見る)」の実装で ショートコードを使わないと不具合が出ます

niconic73027793

総合スコア215

CSS3

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

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

Webサイト

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

HTML

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

0グッド

0クリップ

投稿2021/10/15 02:29

編集2021/10/15 03:55

cssのみで「続きを読む(もっと見る)」を実装 | キノコログ
https://kinocolog.com/css_readmore/
のサイトをみながら CSS をワードプレスに入れたいと思っています。

html が下記で

<div class="readmore"> <input id="check1" class="readmore-check" type="checkbox"> <div class="readmore-content"> 中身のテキスト </div> <label class="readmore-label" for="check1"></label> </div>

CSSが下記です

position: relative; box-sizing: border-box; /*以下お好み*/ /* ボーダーを付ける場合 */ padding: 10px; border: 1px solid #CCC; } .readmore-content{ position: relative; overflow: hidden; /*以下お好み*/ /*高さの初期値*/ height: 100px; } .readmore-content::before { display: block; position: absolute; bottom: 0; left: 0; width: 100%; content: ""; /*以下お好み グラデーションの色と高さ 高さはreadmoreのheight以下にすること*/ height: 50px; background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0.8) 50%, #fff 100%); background: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0.8) 50%, #fff 100%); } /* 続きを読むボタン */ .readmore-label{ display: table; bottom: 5px; position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); -webkit-transform: translateX(-50%); margin: 0 auto; z-index: 2; padding: 0 10px; background-color: #ff7777; border-radius: 10px; color: #FFF; } .readmore-label:before{ content: '続きを読む'; } .readmore-check{ display: none; } /*チェック時にボタンを非表示*/ .readmore-check:checked ~ .readmore-label{ position: static; transform: translateX(0); -webkit-transform: translateX(0); /* 「続きを読む」を押した後、元に戻す必要がない場合は、上のオプションを消してこの1行だけにする */ /* display: none; */ } .readmore-check:checked ~ .readmore-label:before{ content: '閉じる'; } /*チェック時に高さを自動に戻す*/ .readmore-check:checked ~ .readmore-content{ height: auto; } /*チェック時グラデーション等を削除*/ .readmore-check:checked ~ .readmore-content::before { display: none; } コード

このコードを html でそのままいれるやり方とショートコードで挿入するやり方が参考サイトで紹介されているのですが、

ショートコードを使わずに html をいれたものが下記なのですが

html でいれたもの

続きを読むをクリックした後、続きを読むが消えません。

どうしたら、 続きをよむをクリックした後に 続きを読むボタンが消えるようになるのでしょうか?
スクロールしたときの動画
スクロールしたときの動画

ショートコードでいれたもの

上記のショートコードでいれたものはボタンを押したら消えます。

下記がショートコード化のソースです。

function readmoreSC($atts, $content = null){ //1ページ内に複数回使う時のために、一意なIDを$READMORE_COUNTに入れる global $READMORE_COUNT; if(isset($READMORE_COUNT) || $READMORE_COUNT){ $READMORE_COUNT++; }else{ $READMORE_COUNT = 1; } $content = preg_replace('/^(<br />|<br>)/is', '', $content); //勝手に挿入されるbrタグを消す $html = ''; $html .= '<div class="readmore">'; $html .= '<input id="check'.$READMORE_COUNT.'" class="readmore-check" type="checkbox">'; $html .= '<div class="readmore-content">'; $html .= $content; $html .= '</div>'; $html .= '<label class="readmore-label" for="check'.$READMORE_COUNT.'"></label>'; $html .= '</div>'; return $html; } add_shortcode('readmore', 'readmoreSC');

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

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

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

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

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

guest

回答1

0

ベストアンサー

続きを読むをクリックした後、続きを読むが消えません。

下記にちゃんとコメントがあります。

css

1.readmore-check:checked ~ .readmore-label{ 2 position: static; 3 transform: translateX(0); 4 -webkit-transform: translateX(0); 5 /* 「続きを読む」を押した後、元に戻す必要がない場合は、上のオプションを消してこの1行だけにする */ 6 /* display: none; */ 7}

下記に修正すれば消えると思いますよ。

css

1.readmore-check:checked ~ .readmore-label{ 2 display: none; 3}

追記

上記の変更でもうまくいかないということなので、リンク先のソースをみてみました。
HTMLを参考先と変更してますね。

参考先のコード

html

1<div class="readmore"> 2 <input id="check1" class="readmore-check" type="checkbox"> 3 <div class="readmore-content"> 4 中身のテキスト 5 </div> 6 <label class="readmore-label" for="check1"></label> 7</div>

html でいれたもの のコード

html

1<div class="readmore"> 2 <input id="check1" class="readmore-check" type="checkbox"><p></p> 3 <div class="readmore-content"> 4 中身のテキスト 略 5 </div> 6 <p> 7 <label class="readmore-label" for="check1"></label> 8 </p> 9</div>

label が pタグで囲まれてます。これがうまくいかない原因です。
pタグを削除するか、デザイン上必要なら、
CSSをセレクタを下記のように変更すればいいでしょう。

css

1.readmore-check:checked ~ p .readmore-label{ 2 display: none; 3}

投稿2021/10/15 02:44

編集2021/10/15 05:09
hatena19

総合スコア33795

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

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

hatena19

2021/10/15 05:10

ソースコードを読んでみて原因が分かりました。 回答に追記しておきましたので、ご参考に。
niconic73027793

2021/10/15 05:25

ありがとうございます! ワードプレスで自動挿入されたPタグが原因でした。 半日モヤモヤしていたのでスッキリしました<(_ _)>
hatena19

2021/10/15 05:33

なるほど、ワードプレスだとそういうことがありますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問