表示の崩れない文字の背景の設定方法

7件の返信スレッドを表示中
  • 投稿者
    投稿
    • #26247
      dprd
      ゲスト

      表示の崩れない文字の背景の設定方法について質問です。

      トップページの記事のタイトルに背景を付けたいと思い、検索して.entry h2にbackground-colorを設定しました。(wordpress最新版、Simplicity最新版)

      http://netakiri.net/uploader/src/up0102.jpg
      パソコンでの表示(上の画像)は上手くいったのですが、スマホ(下の画像。Androidのブラウザの縦表示)だとアイキャッチの画像に重なってしまいます。

      CSSは全く詳しくないので、この設定方法が正しいのかよく分かりません。
       
      スマホのような小さな画面でも表示の崩れない、記事のタイトルに背景を付ける方法を教えて頂けないでしょうか?
      よろしくお願いします。

    • #26250
      hidekichi
      ゲスト

      案外大掛かりな改造となりますが、イケルでしょうか…ちょっと心配な点もあるのでそこらを解説してみたいと思います。さほどでもないのですが、慣れていない人にとってはちょっと聞き慣れない言葉も出てくると思いますが色々調べてみて下さい。

      簡単な方法で言うとh2に幅をもたせればよいのですけれども、あまりレスポンシブではないんですよね。またメディアクエリでそれぞれのブレイクポイントごとに設定が必要になったりして、それはそれで大変です。

      まず、注意すべきこととして、親テーマのアップデートでカスタマイズした内容が消えてしまわないように注意して下さい。

      親テーマentry-card.phpのclass=”entry-content”の下にある「h2〜閉じh2」までをid=”post”なんちゃらとclass=”entry-thumb”の間に持っていきます。元に戻せるように、「h2〜閉じh2」はコメントアウトしておいてコピっても良いかも知れません。コメントアウトは以下みたいな感じで。

      <php /* <h2>なんちゃら</h2> */ ?>

      次に、閉じh2をclass=”entry-content”の手前に持ってきます。これで構造的には、

      <h2>
        <div class="entry-thumb"></div>
        <a href="">h2の元々のテキスト</a>
      </h2>

      こんな感じになり、実際には、
      entry-card.phpカスタマイズ
      このような感じになります。

      これで準備はできました。後はcssだけです。

      .entry h2 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
      }
      
      .entry h2 .entry-thumb {
        float: none;
        flex: none;
      }
      
      .entry h2 a {
        background-color: #f00; /*好きな背景色*/
        flex: 1 auto;
        word-wrap: break-word;
        /*その他諸々*/
      }

      これを適用させます(※)。

      ※ ベンダープレフィックスはつけてません。これだとおそらくPC版ChromeとFirefoxぐらいしか対応できないと思います(最近のスマホはいけるかも)。Androidやsafari向けに-webkit-等のベンダープレフィックスも追加するようにして下さい。
      例) display:flex -> display: -webkit-flex;
      flex: 1 auto -> -webkit-flex: 1 auto等

      これらの部分はnarrow.cssやmobile.cssが効いている箇所なので、マージンやパディング等重複したスタイルが飛び交っています。なので、子テーマstyle.cssに、

      @media screen and (max-width: 440px){
        /*ここに上記のcss*/
      }

      こういうのを入れて(追加して)最大幅が440px以下はプロパティを適用するなどの工夫が必要です。また必要のないプロパティはそれを打ち消す書き方をしないといけないかも知れません。最悪、適用したくないcssのスタイルをコメントアウトとか(笑)

      ちなみに.entry h2で flex-flowにて、row nowrapを指定しているので、幅が狭くなった時.entry h2 aのテキストがaからはみ出るのを防ぐため、.entry h2 aでword-wrap: break-word;を設定しています。狭くなった時と言っても200px以下とかなのでまぁ大丈夫かと。
      flex-flow: row nowrapは、横並びでコンテナの要素に収まるように中の要素の幅を自動で設定するのですが、中の要素が並びきらなかった場合ははみ出ます(折り返しません)。

      また、.entry h2 aにalign-self: flex-start;を入れれば、きっとイメージされているものに近づくのではないかと思います。
      更に、メディアクエリで、max-width: 440pxと指定した場合はその幅までなので、タブレットなどのそれ以上の場合はまた設定が必要になるかも知れません。@media screen and(max-width: 1024px){…}とか。

      注意点として、flex-boxは多くの新しいブラウザが対応しているとは言え、まだ確定された仕様ではないのでベンダープレフィックスをつけなくてはいけません。
      仕様や詳細は、 コリス: 最新のドラフトに準じた CSS3 Flexbox の各プロパティの使い方をヴィジュアルで詳しく解説で確認しておいて下さい。

      くれぐれも親テーマのアップデート等で泣かないように、バックアップは取るようにして下さい。

      Attachments:
    • #26262
      dprd
      ゲスト

      試してみましたが、想像していたよりも難しい技が必要で様々なパターンのフォローなども必要になって来るのですね。
      この部分の背景を変えているレスポンシブルなテーマやブログがほとんどない理由もわかった気がします。

      非常に詳しい解説ありがとうございました。

      あと投稿場所を間違えていたようです。
      本来はカスタマイズのフォーラムにすべきでした。
      失礼いたしました。

    • #26288
      アバター画像わいひら
      キーマスター

      .entry h2にmargin-leftを適切に設定するとかでもいけるのかもしれません。
      ただ、他の環境やブレークポイントでどのような影響が出るかはわからないです。

    • #26291
      hidekichi
      ゲスト

      たしかにmargin-leftでもいけますね(滝汗
      スマホの時(iPhone5のサイズで確認)、サムネイルの大きさを変えないなら(デフォルトのサイズで使用するなら)、margin-left: 110px前後でいけるかも。
      スマホの時のリスト表示でサムネイル右ってありましたっけ?ブログカードだけだったかな?
      もしそういった場合にはmargin-leftもその時に変更しないといけませんね。
      どちらにしてもメディアクエリは必要になりそうです。

    • #26292
      アバター画像わいひら
      キーマスター

      サムネイル右があるのはは、ブログカードのみです。
      僕もいろいろな機能との兼ね合いがいろいろありすぎて、大ざっぱな方法しかわからないです。

    • #26298
      dprd
      ゲスト

      教えて頂いたmargin-leftを試してみました。
      margin-left: 110pxで出来ましたが、スマホを横にしたら表示がまた別になるなど、メディアクエリというものの指定が大変そうで、スマホの画面サイズは縦と横で様々なパターンがあるのでなかなか難しいですね。

      回答ありがとうございました。

    • #26300
      アバター画像わいひら
      キーマスター

      利用する機能を、ある程度固定してしまえば限定的なカスタマイズでいけると思います。
      いろいろなデバイスに対応させようとすると、どうしてもメディアクエリが必要になってしまい、多少複雑になってしまいます;

7件の返信スレッドを表示中
  • トピック「表示の崩れない文字の背景の設定方法」には新しい返信をつけることはできません。
スポンサーリンク
アドセンス(大)
アドセンス(大)