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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

5368閲覧

IEでのcalc表示について

momocan

総合スコア13

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2017/05/29 01:04

ワードプレスで、liをcalcで3カラム表示させたいのですが、
IEだけカラム落ちしてしまい、正常に表示されません。

width : 33% ; width : -webkit-calc(100% / 3) ; width : calc(100% / 3) ;

上記のようなCSSで
chromeやfirefoxなどではきちんと3カラムで表示されますが、
IEでだけ、2カラムで右側に大きくスペースがあいてしまうような表示になってしまいます。

IEでも、2カラムや4カラム、5カラムならきちんと表示できるのですが、
なぜか3カラムだけが表示がおかしくなってしまいます。
IE11で検証しています。

解決法が分かる方がいらっしゃいましたら、
ご教授ください。よろしくお願いします。

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

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

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

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

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

m.ts10806

2017/05/29 01:09 編集

HTMLも念のため提示してもらえませんか?CSSについても他の親要素などのCSSの影響もないとは言えませんので。
guest

回答2

0

ベストアンサー

こんにちは。

単純に3カラムを均一割りで表示したいのならdisplay:flexを使用すれば解決するのかなと思います。

親要素にflexを指定し、子のカラムに対して**flex-grow: 1;**を付与します。

html

1<section> 2 <div>カラム1</div> 3 <div>カラム2</div> 4 <div>カラム3</div> 5</section>

css

1body,html{ 2padding:0; 3margin: 0; 4} 5section{ 6display: flex; 7align-items: center; 8justify-content: center; 9align-items: center; 10} 11div{ 12flex-grow: 1; 13}

※ベンダー記載してないので、必要に応じて追記してください。

ちなみにIE11とその他ブラウザで差分が出ているのは少数点以下の値の表示扱いが異なる部分が影響しています。

どうしてもflexboxは使いたくなくcalcでの解決望むなら

css

1body,html{ 2padding:0; 3margin: 0; 4width: 100%; 5overflow: hidden; 6} 7section{ 8width: 102%; 9text-align: center; 10} 11div{ 12width : 33% ; 13width : -webkit-calc(100% / 3) ; 14width : calc(100% / 3) ; 15display: inline-block; 16}

overflow:hiddenで強引にやっちゃうとかですかね。
正確に均一じゃない表示ですが。。。

投稿2017/05/29 01:47

kogure

総合スコア299

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

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

momocan

2017/05/29 04:29

ありがとうございます。 後者のほうの方法で解決できました!
guest

0

ちょっと探した感じではあまり根拠となるソースが見つからなかったので自分で試してみた上での推測でしかないのですが、
「100」は「3」では割り切れませんので、切り上げなど小数点以下の解釈の違いでちょびっとはみ出る分がブラウザによってあるのではないでしょうか?
2,4,5はどんな値でも必ず割り切れますしね。
親も100%だとするとどんなに小さい数字であってもはみ出る分があれば100を超えるサイズになるわけですし。
試しに「width : calc(99% / 3) ;」と割り切れるようにしてみたところ収まるのを確認できました。
ただこれだとブラウザを横に広げれば広げるほど空白部分が大きくなるので調整が必要ですし、
99.99999%とか小数点以下を多めにとる方法もありますがあまりいい解決方法ではないですね。
親要素の幅も含めて分割したい数で割り切れるような数値におさまるよう調整してはどうでしょうか。

参考URL

一応、参考になるか分かりませんが幾つか挙げておきます。

投稿2017/05/29 01:44

編集2017/05/29 01:50
m.ts10806

総合スコア80848

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

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

momocan

2017/05/29 04:32

ありがとうございます。 width : calc(99% / 3) ;の方法でも解決することができました。 参考URLもありがとうございます。
m.ts10806

2017/05/29 04:35

回答にも書いている通り、ブラウザ幅を広げていくと「残り1%」の部分が意外とでかくなってくるのであまりに目にあまるようであれば全体的なバランス含めて3で割っておさまりそうな調整をご検討ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問