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

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

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

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

Q&A

1回答

891閲覧

IE 11 で期待通りに表示されない (太字化 / content 追加)

BetterEveryday

総合スコア19

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

0グッド

0クリップ

投稿2020/04/22 23:37

編集2020/04/23 02:27

前提・実現したいこと

JavaScript で付与した .title をトリガにする編集において、
IE 11 でも他のブラウザと同じく期待通りに表示させたい。

発生している問題

IE 11 では以下 2 種類が想定と異なる表示になる。
|ケース|編集条件|期待値|結果: × (期待外れ)|
|:--|:--:|--:|
|1-1|.title が付与された li (子リスト有り li)|content が挿入されない|content が挿入され|
|2-1|.title が付与されていない li (子リスト無し li)|font-weight: 標準|font-weight: 太字になる|

イメージ説明

IE に限り、JavaScript も動かないのか? を検証するには、どうすればよいのでしょうか? あるいは CSS の a 要素やセレクタ指定、JavaScript の記述に誤り/問題があり、解消できるものなのでしょうか?

該当のソースコード

HTML

1<hr> 2<footer> 3 <div class="con clearfix"> 4 <nav class="clearfix"> 5 <ul class="wide"> 6 <li> 7 <span> 8 <i class="en">ListLevel1st</i><span class="caption"><span style="background-color:aqua;">リンク無し</span>も○ [太字 かつ content 追加なし]</span> 9 </span> 10 <div class="clearfix"> 11 <ul class="half"> 12 <li>ListLevel2nd:<br><span style="background-color:lightgreen;">子リスト有り</span>の<span style="background-color:aqua;">リンク無し</span>は ○ [content 追加なし] 13 <ul> 14 <li><a href="#">最下層:<br><u><span style="background-color:yellow;">子リスト無し</span>の<span style="background-color:red;">リンク有り</span>は ×【太字になる】</u></a></li> 15 </ul> 16 </li> 17 </ul> 18 <ul class="half"> 19 <li><a href="#">ListLevel2nd:<br><u><span style="background-color:lightgreen;">子リスト有り</span>の<span style="background-color:red;">リンク有り</span>は ×【content 追加される】</u></a> 20 <ul> 21 <li><a href="#">最下層:<br><u><span style="background-color:yellow;">子リスト無し</span>の<span style="background-color:red;">リンク有り</span>は ×【太字になる】</u></a></li> 22 </ul> 23 </li> 24 </ul> 25 <ul class="half"> 26 <li>ListLevel2nd:<br><span style="background-color:lightgreen;">子リスト有り</span>の<span style="background-color:aqua;">リンク無し</span>は ○ [content 追加なし] 27 <ul> 28 <li><a href="#">最下層:<br><u><span style="background-color:yellow;">子リスト無し</span>の<span style="background-color:red;">リンク有り</span>は ×【太字になる】</u></a></li> 29 </ul> 30 </li> 31 </ul> 32 </div> 33 </li> 34 </ul> 35 <ul> 36 <li> 37 <span> 38 <a href="#"><i class="en">ListLevel1st</i><span class="caption"><span style="background-color:red;">リンク有り</span>も○ [太字 かつ content 追加なし]</span></a> 39 </span> 40 <ul> 41 <li><a href="#"><u>最下層:<br><span style="background-color:yellow;"> 子リスト無し</span>の<span style="background-color:red;">リンク有り</span>は ×【太字になる】</u></a></li> 42 </ul> 43 </li> 44 </ul> 45 </nav> 46 </div> 47</footer> 48

CSS

1@charset "UTF-8"; 2 3@import url('https://fonts.googleapis.com/css?family=Karla'); 4 5* { 6 box-sizing:border-box; 7 /* tap */ 8 -webkit-tap-highlight-color: rgba(0,0,0,0); 9 -webkit-box-shadow: none; 10 box-shadow: none; 11 outline: none; 12} 13*:focus { outline: none; } 14 15html { overflow-y:scroll; } 16body { 17 width:100%; margin:0; padding:0; 18 font-size:15px; line-height:1.7; letter-spacing:0.05em; 19 color:#000; 20 font-family: "游ゴシック", YuGothic, "メイリオ", Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "MS Pゴシック", sans-serif; 21 background:#fff; 22} 23 24ol, ul, li, dl, dt, dd, h1, h2, h3, h4, h5, h6, h7, form, p { margin:0; padding:0; } 25img { border:0; } 26li { list-style-type:none; } 27 28a { -webkit-transition:.2s linear; -moz-transition:.2s linear; -o-transition:.2s linear; transition:.2s linear; } 29a:link { color:#000; text-decoration:none; } 30a:visited { color:#000; } 31a:hover { color:#cc141c; } 32a:active { color:#cc141c; } 33a img { 34 -webkit-transition:.2s linear; 35 -moz-transition:.2s linear; 36 -o-transition:.2s linear; 37 transition:.2s linear; } 38a.fade:hover img { opacity:0.7; } 39 40a.underline { text-decoration:underline; color:#cc141c; } 41a.underline:hover { color:#cc141c; } 42 43img { max-width:100%; height:auto; vertical-align:top; } 44 45/* clearfix */ 46.clearfix:after { 47 visibility: hidden; 48 display: block; 49 font-size: 0; 50 content: " "; 51 clear: both; 52 height: 0; 53} 54* html .clearfix { zoom: 1; } /* IE6 */ 55*:first-child+html .clearfix { zoom: 1; } /* IE7 */ 56 57.txt_c { text-align:center; } 58.txt_l { text-align:left; } 59.txt_r { text-align:right; } 60 61.float_l { float:left; } 62.float_r { float:right; } 63.clear { clear:both; } 64.hidden { visibility:hidden; } 65 66.serif { font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "MS P明朝", "MS PMincho", serif; } 67.en { font-family: Karla, Century Gothic, Futura,sans-serif; } 68.bold { font-weight:bold; } 69.big { font-size:120%; } 70.small { font-size:88%; } 71.red { color:#df003a!important; } 72.white { color:#fff!important; } 73.black { color:#000!important; } 74 75body.fixed { position:fixed; width:100%; height:100%; } 76.con { position:relative; margin:auto; } 77 78/* common */ 79p { margin-bottom:20px; } 80p:last-child { margin-bottom:0; } 81.con { position:relative; text-align:left; } 82 83.all { text-align:right; margin:-20px 0 50px; font-size:14px; letter-spacing:0.075em; } 84.all a:after { content:""; display:inline-block; width:20px; height:6px; margin-left:10px; background:url("../img/arrow_b.png") 0 0 no-repeat; } 85 86/* footer */ 87footer { padding-bottom:40px; text-align:center; position:relative; } 88 89footer nav { padding-top:70px; } 90footer nav a { color:#000; font-size:14px; } 91footer nav li ul a { font-size:14px; } 92footer nav li ul li { position:relative; padding-left:20px; line-height:1; padding:0; } 93footer nav li ul li + li { margin-top:15px; } 94footer nav li ul li.title { padding:0; } 95/* title class による文字太さの設定 */ 96ul, li.title {font-weight:Bold;} /* 太字化 */ 97li.title ul, span {font-weight:normal;} /* title class の子要素を標準化 */ 98li a,li.title a {font-weight:inherit;} /* li の子要素 a に引き継ぐ */ 99 100ul, li.gray {color:gray} 101li a,li.gray a {color:inherit; display: block;} 102 103footer nav > ul > li > span i { display:block; font-style:normal; font-size:18px; font-weight:bold; line-height:1; margin-bottom:5px; } 104.caption { font-size:11px; } 105 106@media (min-width: 769px) { 107 108 footer nav li ul { margin-top:40px; } 109 footer nav li ul.half { width:33.333%; float:left; } 110 footer nav > ul { width:25%; float:left; margin-bottom:50px; } 111 footer nav > ul.wide { width:75%; } 112 footer nav > ul > li > ul, 113 footer nav > ul > li > .clearfix { display:block; } 114 footer nav > ul > li > span { position:relative; display:block; padding-bottom:15px; } 115 footer nav > ul > li > span:after { content:""; display:block; width:75%; height:1px; background:#cc141c; position:absolute; bottom:0; left:0; } 116 /* title class でない li に続く a の前にマーカー文字を追加する */ 117 footer nav li:not(.title) > a:before { content:"- ";} 118}

JavaScript

1 // 子リストを持つ li 要素に「title」という class を付加する 2 window.addEventListener('DOMContentLoaded', ()=>{ 3 document.querySelectorAll('li').forEach(x=>{ 4 var flg=(x.querySelectorAll('ul').length > 0); 5 x.classList.toggle('title',flg); 6 }); 7 }); 8 // a 要素を持たない li に「gray」という class を付加する 9 window.addEventListener('DOMContentLoaded', ()=>{ 10 document.querySelectorAll('li').forEach(x=>{ 11 var flg=(x.querySelectorAll('a').length == 0); 12 x.classList.toggle('gray',flg); 13 }); 14 }); 15

試したこと

■1. 他のブラウザでは期待通りに表示される。

  • Microsoft Edge
  • Google Chrome

■2. IE でも以下は期待通りに表示される。
|ケース|編集条件|期待値|結果: 〇 期待通り|
|:--|:--:|--:|
|1-2|.title が付与された li (子リストを有り li)|font-weight: 太字|font-weight: 太字になる|
|2-2|.title が付与されていない li (子リスト無し li)|content が挿入される|content が挿入される|

補足情報(FW/ツールのバージョンなど)

ターゲットブラウザ: Internet Explorer 11

■関連不具合
今回期待値と異なる li 要素については「フォント欠け(位置上ズレ)」の問題も発生しており、overflow:visible で対応しています。
リンク内容

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

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

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

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

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

guest

回答1

0

1-2: content が挿入されてしまう件
.titleを付与したli要素直下のaタグのbefore疑似要素の「content」が挿入されてしまう、
と理解しました。

まず最終手段として「表示したくない」のであれば以下のようにdisplay: none;を指定する方法もあると思います。

CSS

1/* CSSセレクタは、設定お願いします。 「.xxxx」はダミーです */ 2.xxxx .xxxx .title a::before { display: none; }

あとは解決するか微妙ですが、
a:before
a::beforeなど、「::」を使うのがいまは一般的なのでそちらを使ったほうがいいかと思います。


2-1: 太字になってしまう件

CSS

1/* CSSセレクタは、設定お願いします。 「.xxxx」はダミーです */ 2.xxxx .xxxx li a { 3 font-weight: normal; 4}

もしくは↓でもいけるかもしれません。

CSS

1/* CSSセレクタは、設定お願いします。 「.xxxx」はダミーです */ 2.xxxx .xxxx li a { 3 font-weight: inherit; /* 親要素の値を踏襲 */ 4}

Bold;でなくboldにするといいかもしれません。
(IEは、一般的でない書き方をすると動かなくなることが多いので)

CSS

1/* ul, li.title {font-weight:Bold;} */ /* 太字化 */ 2ul, li.title {font-weight:bold;} /* 太字化 */

投稿2020/04/23 00:16

編集2020/04/23 00:40
new1ro

総合スコア4528

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

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

BetterEveryday

2020/04/23 02:08

new1ro さま、 検討いただきましてありがとうございます。 1. content が挿入されてしまう件 たしかに display:none; を指定する案は良さそうですね。 記述挿入位置は以下の content 追加後 (CSS 最終行) になると思いますが、 /* title class でない li に続く a の前にマーカー文字を追加する */ footer nav li:not(.title) > a:before { content:"- ";} 有効に機能するセレクタを見つけられませんでした。 2. 太字になる件 いただいた案. li a に normal または inherit を指定する .title の li a は太字にしたいため、以下の記述にしています。 ul, li.title {font-weight:Bold;} /* 太字化 */ li.title ul, span {font-weight:normal;} /* title class の子要素を標準化 */ li a,li.title a {font-weight:inherit;} /* li の子要素 a に引き継ぐ */ データ構造から .title を作成し、 その .title の有無で同じ階層でもスタイルを制御しようとしています。 もし有効に機能するセレクタ案がありましたら、お知らせいただけませんでしょうか? また、:: と bold の記述スタイルについても advice ありがとうございます。 IE 実行結果は変化しませんでしたが、今後留意していこうと思います。 どうぞよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問