a:visitedの対応状況

このQ&Aのポイント
  • bloggerでCSSを書いている際に、a:visitedの問題があります。
  • MacのChromeとMac Safariではvisitedの色は変わるが、backgroundの画像が変わりません。
  • WinChromeとWinSafariではvisitedの表示がどうなるかわかりません。両方を指定するのは非推奨です。
回答を見る
  • ベストアンサー

a:visitedの対応状況

bloggerでcssを書いているのですが、 li.archivedate a{ background:url('./hiyoko_close.gif') no-repeat; padding-left:1em; } li.archivedate a:visited{ background:url('./hiyoko_open.gif') no-repeat; padding-left:1em; } ↑いまここです。 visitedをきちんと表示させたいのですが、Macのchrome8とMac Safari5では色は変わるのですが、backgroundの画像がaのまま(hiyoko_close.gif)です。 winではIE6.0 FF3.6で確認したところ、意図したとおりに表示されてはいるのですが、WinChromeとWinSafariではどうなんでしょうか? また、 li.archivedate a:visited:before{ content:url('./hiyoko_open.gif') no-repeat; padding-left:0em; } などとして行頭の文字だけアイコンで置き換えることは不可能でしょうか? visitedとbeforeを両方指定するのはむりですか?(:beforeはIE6は非対応のようですが)

noname#127176
noname#127176
  • HTML
  • 回答数5
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • DrFell
  • ベストアンサー率55% (305/551)
回答No.5

#4です。 いや、悩ましいって問題ではなく、 ご質問の「色は変わるのですが、backgroundの画像がaのまま」って部分が 「CSS で背景画像が変わらない? また、制作面では今回の変更で :visited に指定できるプロパティが大きく制限されています。 その中で特に影響がありそうな部分の1つに :visited に background-image などが指定できなくなる、ということがあります。 」(1つめのリンク内から引用) ってことです。rftghyju さんが悩まなくても、ブラウザが対応していっていますので、今回の質問になったのでは? そしてこれから先、Firefoxも続きますよってお話です。

その他の回答 (4)

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.4

visitedのイメージ画像を変更することに、セキュリティ上の問題があることがわかり、visitedの画像は使えなくなるブラウザが増えています。使われないことをお勧めします。 ●Safari 5 で :visited の挙動が変更に http://safarirealized.com/archives/51496726.html ●CSS によるブラウザ履歴の漏えいを防ぐ取り組み https://dev.mozilla.jp/2010/04/plugging-the-css-history-leak/

noname#127176
質問者

お礼

たしかにvisitedを調べれば履歴が分かってしまいますね いま、言われて始めて気づきました。 利便性とセキュリティは相反するってやつですね。 悩ましい。

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.3

NO.2です。 失礼 誤× >padding-left:0; でOKなのでは? padding-left:1em;  これ必要ですね・・・

noname#127176
質問者

お礼

しかしリンク済みのvisitedはちゃんと効いてるんですよ。 色が変化してますから。

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.2

NO.1さんの回答で、良いと思いますが、 あ、url('./hiyoko_open.gif') に置換えですが・・・ ------------------- 「a:visited:before」 は 全て「a:visited+アイコン」ですよね? それなら、hiyoko_open.gif と アイコンを1枚に加工して padding-left:0; でOKなのでは? または、 a:link時には隠し画像で、<img>を配置し、visibility:hidden; にするとか。

noname#127176
質問者

補足

ええと、hiyoko_open.gifがアイコンなのですが、1枚に加工するとはどういうことでしょうか?

回答No.1

共通部分はli.archivedate aで指定し、変化させたい部分はli.archivedate a:linkで指定されてはどうでしょうか。 li.archivedate a{ background-repeat:no-repeat; padding-left:1em; } li.archivedate a:link{ background-image:url('./hiyoko_close.gif'); } li.archivedate a:visited{ background-image:url('./hiyoko_close.gif'); } a:visited:beforeは:beforeに対応しているブラウザでも一部対応していないものがあったはずです。 指定は問題ありません。

noname#127176
質問者

補足

visitedはhiyoko_openですよね。 でもやはりこれでは訪問済みリンクでもhiyoko_close.gifのままです。 MacChrome8.0

関連するQ&A

  • FireFoxでvisitedの表示不具合について

    HTMLやCSSに知識がなく困っています。 質問をよろしくお願いいたします。 メニューバーには8つのボタンがあるのですが FireFoxでは、visitedが表示されず IEはページの行き来でメニューボタンが消失します。 何か解決法はありませんでしょうか? よろしくお願いいたします。 CSS部分 body { background-color: #FFFFFF; margin:0; padding:0; } #menu{ position:absolute; top:0px; width:800px; height:219px; left:-1px; margin:0; padding:0; background-image:url(../topimage/title.gif); background-repeat:no-repeat; } #menu #bottom{ position:absolute; float:left; top:149px; width:800px; height:70px; left:0px; } #bottom ul{ list-style:none; padding:0; margin:0; } #bottom ul li{ padding:0; margin:0; float:left; } #bottom a.c,#bottom a.c:link { display:block; width: 115px; height:70px; background-image:url(../top/img/menu/b1.gif); background-repeat:no-repeat; background-position:0% 0%; } #bottom a.c:visited { background-position:100% 0%; } #bottom a.c:hover { background-position:33% 0%; } #bottom a.c:active { background-position:66% 0%; } 以下ボタン7つのソースがほぼ同じ為、省略します。 HTML部分 <div id="menu"> <div id="bottom"> <ul>  <li><a href="../new/top.html" target="main" class="c"></a></li>  <li><a href="../product/top.html" target="main" class="d"></a></li> <li><a href="../example/top.html" target="main" class="e"></a></li> <li><a href="../company/top.html" target="main" class="f"></a></li> <li><a href="../rinen/top.html" target="main" class="j"></a></li> <li><a href="../faq/top.html" target="main" class="g"></a></li> <li><a href="../info/top.html" target="main" class="h"></a></li> <li><a href="../recruit/top.html" target="main" class="i"></a></li> </ul> </div> </div>

  • CSSのリストタグでメニューを作ってますがレイアウトが崩れます

    CSSでリストタグを使ってメニューを作成してますが、Firefoxだとメニューの幅が広く表示され本文にかぶってしまいレイアウトが崩れてしまいます。ちなみにレイアウトは2段組です。 #menu{ text-align: left; width: 175px; float: left } #menu #text ul{ list-style-type: none; margin: 0; padding: 0; border-top: 1px solid white } #menu #text li{ background-image: url("../navi_yajirusi.gif"); background-repeat: no-repeat; background-position: left center; margin: 0; padding: 0; border-bottom: 1px solid white } #menu #text li a{ color: #fff; text-decoration: none; background-color: #1b328d; background-image: url("../navi_yajirusi.gif"); background-repeat: no-repeat; background-position: left center; display: block; padding: 10px 0 10px 10px; width: 175px } #menu #text li a:hover { color: #fff; background-color: #ff0; background-image: url("../navi_yajirusi.gif"); background-repeat: no-repeat; background-position: left center } どなたか詳しい方よろしくお願いいたします。

  • リストタグでのナビゲーションボタンで、背景画像が表示されません。

    winIE6では正常に表示されるのですが、 safariだとまったくcssが無視され、横並びにもならない始末です(^_^;) どなたかご教授お願いいたします。 ■html <div id="header"> <ul id="headerMenu"> <li id="home"><a href="index.html">ホーム</a></li> <li id="sitemap"><a href="sitemap.html">サイトマップ</a></li> <li id="recruit"><a href="recruit.html">リクルート</a></li> <li id="contact"><a href="contact.html">お問合せ</a></li> </ul> </div> ■css #header { width:100%; height:107px; margin:0px; padding:0px; position: relative; font-size:12px; background:url("img/top.gif") no-repeat; } #headerMenu{   list-style-type:none;   padding:0px; margin:6px 0px 0px 532px; } #headerMenu li {   display:inline; padding:0;   margin:0px;   float:left;   } #headerMenu a {   display:block;     text-decoration:none;   text-indent:-5000px;     height:25px; } #home {   display:block;     background-image: url("img/topmenu_01.gif");     background-repeat: no-repeat;     width:63px;     background-position:0px 0px;   } #home a:hover {     background-image: url("img/topmenu_01.gif");     background-repeat: no-repeat;     background-position:0px -25px;  } #sitemap {   background-image: url("img/topmenu_02.gif");     background-repeat: no-repeat;     width:90px;     background-position:0px 0px;   } #sitemap a:hover {     background-image: url("img/topmenu_02.gif");     background-repeat: no-repeat;     background-position:0px -25px;   } #recruit {   background-image: url("img/topmenu_04.gif");     background-repeat: no-repeat;     width:82px;     background-position:0px 0px;   } #recruit a:hover {     background-image: url("img/topmenu_04.gif");     background-repeat: no-repeat;     background-position:0px -25px;   } #contact {   background-image: url("img/topmenu_05.gif");     background-repeat: no-repeat;     width:82px;     background-position:0px 0px;   } #contact a:hover {    background-image: url("img/topmenu_05.gif");    background-repeat: no-repeat;     background-position:0px -25px;   }

    • 締切済み
    • CSS
  • javascriptで文字サイズの変更

    HP初心者です。 書籍通りに作ってみてのですが文字は変更されるのですが、 作った大中小の画像?までクリックするとズレてしまいます。 文字だけが変更されるのを希望してます。 ↓見てやって下さい http://www.d-judge.jp/d-judge/test.html ソースは HTML↓ <div id="header"> <div class="font_size"> <ul> <li><img src="images/txt_size.gif" alt="文字サイズ" width="68" height="14" /></li> <li><a href="javascript:void(0);" onclick="javascript:changeFsize('l')" class="textL"><span>大</span></a></li> <li><a href="javascript:void(0);" onclick="javascript:changeFsize('m')" class="textM"><span>中</span></a></li> <li><a href="javascript:void(0);" onclick="javascript:changeFsize('s')" class="textS"><span>小</span></a></li> </ul> </div> <p>ああああああ テストです。</p> </div> css↓ /* 文字サイズ ----------------------------*/ #header .font_size { margin: 2.5em 0px 0px; position: absolute; left: 86px; top: -2px; width: 250px; text-align: right; height: 24px; } #header .font_size li { padding: 0px 0px 0px 1em; float: left; list-style: none; } #header .font_size li img { margin-top: 5px 0; } #header .font_size ul li a { height: 24px; width: 24px; display: block; } #header .font_size ul li a span { display: none; } #header .font_size ul li .textL:link, #header .font_size ul li .textL:visited, #header .font_size ul li .textL:active { background-image: url(images/text_L.gif); background-repeat: no-repeat; background-position: left top; } #header .font_size ul li .textL:hover { background-image: url(images/text_L_o.gif); background-repeat: no-repeat; background-position: left top; } #header .font_size ul li .textM:link, #header .font_size ul li .textM:visited, #header .font_size ul li .textM:active { background-image: url(images/text_M.gif); background-repeat: no-repeat; background-position: left top; } #header .font_size ul li .textM:hover { background-image: url(images/text_M_o.gif); background-repeat: no-repeat; background-position: left top; } #header .font_size ul li .textS:link, #header .font_size ul li .textS:visited, #header .font_size ul li .textS:active { background-image: url(images/text_S.gif); background-repeat: no-repeat; background-position: left top; } #header .font_size ul li .textS:hover { background-image: url(images/text_S_o.gif); background-repeat: no-repeat; background-position: left top; } javascript↓ /*フォントサイズ変更*/ function changeFsize(fontsize) { var change = document.getElementsByTagName("body")[0]; switch(fontsize) { case "s": var percent = "62.5%"; break; case "m": var percent = "75%"; break; case "l": var percent = "85%"; break; } change.style.fontSize = percent; } です。 どなたかお分かりになる方宜しくお願いしますm(_ _ )m

  • css

    上下2つの画像で角丸にcssでしようと思います。上はこれでいいんですが 下の表示はどうするんでしょうか。 <div id="sub"> <h1>メニュー</h1> <ul> <li><a href="1.html" >123</a></li> <li><a href="2.html" >123</a></li> <li><a href="3.html" >123</a></li> </ul> </div> #sub { float:right; margin-top:5px; width:180px; padding:5px 5px 2px 5px; background-image: url(ue.gif); background-repeat:no-repeat; } #sub h1 { background: url(images/a.gif); color:#333333; font-size:11px; font-weight: normal; padding:5px 20px ; } #sub ul{ padding:0; list-style:none; background-color:#FFFFFF; } #sub li{ margin:0 0 0 0px; border-bottom:1px solid #0000ff; } #sub li a { display:block; padding-left:20px; background:url(images/1.gif) 2% 50% no-repeat; line-height:35px; } わかりましたらよろしくお願いします。

    • ベストアンサー
    • CSS
  • リンクに画像

    リンクに画像 ulのリストのリンクにカーソルを当てると左側に小さなアイコンが出るようにしました。 が、下のようにすると文字にかかってしまいます。 文字にかからないようにするにはどうすればいいでしょう? padding-leftで文字をずらしたつもりが、画像まで一緒にずれてしまいます。 ul#indx li {margin:10px 0 0 0; padding-left:20px;} ul#indx a:hover{background-image: url("../images/sho-kira-f12.gif");background-repeat: no-repeat; background-position: center left;}

    • ベストアンサー
    • HTML
  • CSSでの<ul><li id=n><a>での表示に付いて

    初めて質問させて頂きます。仮に作ったサイト名が次の通りです。 http://yusukeinoue.web.fc2.com/271p/271p.html Firefox、Operaで<#sidenavi>での<ul><li id=n><a>のCSSが間違っているのかimgが表示されないのです。CSSは以下の様な感じで } #wrapper #sidenavi ul { list-style-type: none; font-size: 10px; margin: 0px; padding: 0px; display: block; } #wrapper #sidenavi li a { display: block; margin: 0px; padding: 0px; height: 30px; width: 200px; font-size: 12px; text-decoration: none; } #sidenavi li#1 { background-image: url(images/bButton1.gif); background-repeat: no-repeat; margin: 0px; padding: 0px; height: 30px; width: 200px; } #sidenavi li#2 { background-image: url(images/bButton2.gif); background-repeat: no-repeat; margin: 0px; padding: 0px; height: 30px; width: 200px; id=liはそのあとも続くのですが、<em></em>で非表示にしています } #sidenavi em { visibility: hidden; } 使用環境はMacOX10.4.7、DreamweaverMXです。safariでは問題なく表示されます。 参考書籍通りに<ul><li>をボックス化して、インラインにし背景画像を 埋め込むと言う作業でした。 それ以上は書いていないので分かりません。。。 ご教授のほどお願いいたします

    • ベストアンサー
    • CSS
  • IE6でナビ下に隙間ができてしまいます。

    横並びのナビの下に隙間無く内容を入れたいのですが、IE6だとナビ下に2ミリ位の隙間ができてしまいます。 いろいろ調べてIE6対策でline-height: 0・margin: 0を追加してもうまくいきません。 何が間違っているのか、ご支持お願いします。 <body> <div id="wrapper"> <div id="headnavi"> <ul> <li id="A"><a href=""><span>A</span></a></li> <li id="B"><a href=""><span>B</span></a></li> <li id="C"><a href=""><span>C</span></a></li> <li id="D"><a href=""><span>D</span></a></li> <li id="E"><a href=""><span>E</span></a></li> <li id="F"><a href=""><span>F</span></a></li> </ul> </div><!-- / #headnavi --> <div id="pro_back"> <p>○○○○○</p> </div><!-- / #pro_back --> </div><!-- / #wrapper --> </body> </html> *{ margin: 0px; padding: 0px; font-weight: normal; list-style-type:none; } body { width: 100%; font-size: 75%; font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif; line-height: 180%; color: #333; } #wrapper { position: relative; width: 960px; margin-left:auto; margin-right:auto; } #pro_back { width: 960px; height: 623px; background-image: url(images/pro_back.gif); background-repeat: no-repeat; margin: 0; } #headnavi { width:960px; height: 33px; margin: 0; } #headnavi ul { line-height: 0; margin: 0; } #headnavi ul li a { display: block; width: 172px; text-decoration: none; height: 33px; } #headnavi ul li a span { position: absolute; width: 0; height: 0; padding: 0; overflow: hidden; } ul li#A a { position: absolute; left: 890px; top: 0px; background-repeat: no-repeat; background-position: 0 0; background-image: url(images/topbotan.gif); margin: 0; } ul li#B a { position: absolute; left: 632px; top: 0px; background-repeat: no-repeat; background-position: 0 0; background-image: url(images/link.gif); margin: 0; } ul li#C a { position: absolute; left: 474px; top: 0px; background-repeat: no-repeat; background-image: url(images/mail.gif); margin: 0; } ul li#D a { position: absolute; left: 316px; top: 0; background-repeat: no-repeat; background-image: url(images/illustration.gif); margin: 0; } ul li#E a { position: absolute; left: 158px; top: 0; background-repeat: no-repeat; background-image: url(images/designwork.gif); margin: 0; } ul li#F a { position: absolute; left: 0px; top: 0; background-position: 0 0; background-repeat: no-repeat; background-image: url(images/profile.gif); margin: 0; }

    • 締切済み
    • CSS
  • spanで指定する方法教えてほしいです。

    <span class="top">Home</span> topで指定したのですが、うまく画像が表示されません。 どうすればうまくbackground-colorのimages/btn046_06.gifが表示されるでしょうか? よろしくお願いします。 htmlの部分 <div id="left_navi"> <ul> <li><a href="#"><span class="top">Home</span></a></li> <li><a href="#"><span>Categories</span></a></li> <li><a href="#"><span>About</span></a></li> <li><a href="#"><span>Portfolio</span></a></li> <li><a href="#"><span>Contact</span></a></li> <li><a href="#"><span>Home</span></a></li> <li><a href="#"><span>Categories</span></a></li> </ul></nav> </div> cssの部分 #left_navi{ width:230px; height:700px; background-color:#e6e6e6; float:left; } #left_navi ul{ list-style-type: none; padding-top: 20px; color:blue; } #left_navi li{ padding-top:20px; } #left_navi a{ text-align: center; display:block; width:100%; height:40px; padding-bottom:9px; padding-top: 11px; padding-left:-50px; padding-right:30px; background-image:url(images/btn046_05.gif); background-repeat:no-repeat; color:gray; } #left_navi a .top{ background-image:url(images/btn046_06.gif); } #left_navi a:hover{ background-image:url(images/btn046_10.gif); color: blue; }

    • ベストアンサー
    • CSS
  • ボタンの配置がうまくいきません

    CSSでサイトのデザインをしているのですがうまくいかないので、教えて下さい。 ボタンをfloatで並べているのですが、現在いるページのボタンはでかく、いないページは小さく表示をしたく、思い通りのサイズの画像を作って並べているのですが、思い通りに配置されません。 -------------以下ソース------------------ 【CSS】 * {margin:0; padding:0;} body {font-size:14px;} a {color: #0077B0; text-decoration:none;} a:hover {text-decoration:underline;} #menu {overflow:auto !important; overflow /**/:hidden; width:100%; border-bottom:double #009933;} #menu li {float:left; width:59px; line-height:2.3em; list-style:none; height:29px;} #menu li a {display:block; width:100%; height:29px;} #menu li.Navi01 {background:url(../img/btn1.gif) no-repeat;} #menu li.Navi01 a:hover {background:url(../img/btn.gif) no-repeat} #menu li.Navi01_v {background:url(../img/btn_v.gif) no-repeat; width:67px; height:35px;} #menu li.Navi02 {background:url(../img/btn1.gif) no-repeat;} #menu li.Navi02 a:hover {background:url(../img/btn.gif) no-repeat} #menu li.Navi02_v {background:url(../img/btn_v.gif) no-repeat;} #menu li.Navi03 {background:url(../img/btn1.gif) no-repeat;} #menu li.Navi03 a:hover {background:url(../img/btn.gif) no-repeat;} #menu li.Navi03_v {background:url(../img/btn_v.gif) no-repeat;} #body {width:100%; clear:left; border-top:#009933 double medium; margin-top:auto;} 【HTML】 <body> <ul id="menu"> <li class="Navi01_v"><a href="hoge1.html"></a></li> <li class="Navi02"><a href="hoge2.html"></a></li> <li class="Navi03"><a href="hoge3.html"></a></li> </ul> <div id="body">aaaa</div> -------------ここまで------------------ 配置したい場所 1.#menu li.Navi01_vのボタン画像を#menuで指定しているborder-bottomの二重線の下の線に隣接させたい。 2.Navi02とNavi03は#menuで指定しているborder-bottomの二重線の上の線に隣接させたい。 いろいろと試してみたのですが、今の所どちらもうまくいきません。 どうすればよいでしょうか? アドバイス御願いします。

専門家に質問してみよう