![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
すみません。お手上げ状態です。教えてください。
サイトを 新たにしようと思い テンプレートをダウンロードし 変更を加えながら作成、変更途中でつまずきました。
htmlで横並びのリストを一つ二つ削除したら 左よりになりました。
<!-- トップナビゲーション -->
<ul id="topnav">
<li class="active"><a href="http://www.***.com">バババ<br><span>Ba(Top)</span></a></li>
<li><a href="http://***.com/index.html"><strong>あああ</strong><br><span>CCC<p>ししし</p></span></a></li>
<li class="active"><a href="http://www.###.com/company.html"><strong>会社</strong><br><span> Office </span></a></li>
</ul>
</ul>
<!-- トップナビゲーション -->
となってます。(これも間違ってたらすみません。)
色々検索し 下記記述があったので いざ 試そうとしましたが
ulをtext-align: center;
と指定してulの中のインライン要素を中央寄せ。。。
liをdisplay: inline-block;と指定して...横並びのリストが中央寄せになり...
どこにどのように記述すればよいのか わかりません。
初心者で申し訳ありませんが バナーの 横並びのリストを 真中に持ってきたいです。
どのようにHTMLを記述すればよいのでしょうか?
わかりやすいように教えてください。 初心者で恐縮ですがよろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
まだ初心者の方のようですから少し詳しく説明すると
>どのようにHTMLを記述すればよいのでしょうか?
そうではありません。HTML5の勧告で今後は益々このあたりは厳しくなりますから、最初に間違って覚えると直すのが大変です。
実は今から15年前のHTML4.01の勧告(それ自体、この部分の注意換気が目的でした)
すなわち、『構造とプレゼンテーションの分離( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』と言われる部分です。
具体的にはナビゲーションのリストは、その文書構造に基づいてリストとしてマークアップしなさい。ということです。classやidは、HTMLの要素(タグだけでは文書構造が分からないときに)を保管するものです。
--div要素の「id属性及び class属性と併用することで、文書に構造を付加する( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」
※a要素内に<p>要素は入れられません。←原因はコレ
ブロック要素なので、誤ったHTMLとしてここが補完される。
<ul>
<li><a>バババ<br><span>Ba(Top)</span></a></li>
<li><a><strong>あああ</strong><br><span>CCC<p>ししし</p></span></a></li>
<li><a><strong>会社</strong><br><span> Office </span></a></li>
</ul>
ブラウザで補完すると
<ul>
<li><a>バババ<br><span>Ba(Top)</span></a></li>
<li><a><strong>あああ</strong><br><span>CCC</span></a>
<!-- ここから -->
</li>
</ul>
<p><a><span>ししし</span></a></p><span></span></a>
<!-- ここまで -->
</li>
<ul>
<li><a><strong>会社</strong><br><span> Office </span></a></li>
</ul>
となるのですよ。CSSの検証ページに
『メモ: CSSスタイルシートを意図した通りに機能させるには、正しい文書解析木が必要です。つまり、正当なHTMLを用いるべきです。( http://jigsaw.w3.org/css-validator/#validate_by_ … )』
と書いてある。
[例]ぶんしょこう象しか書かないのでとっても簡単
<div class="header">
<ul id="nav">
<li>
<a href="http://www.***.com"><abbr title="Hyper Text Markup Language">HTML</abbr></a>
</li>
<li>
<a href="http://***.com/index.html"><abbr title="Cascading Style Sheet">CSS</abbr></a>
</li>
<li>
<a href="http://www.###.com/company.html"><abbr title="Javascript">JS</abbr></a>
</li>
</ul>
説明
1) headerブロック内にあるので、このナビゲーションはTopnavだと分かる
2) <br>は基本使いません。<span>はclassと併用して文書構造をしめします。 ここはメインの文字の補足だとして<abbr>を使っています。
3) ひたすらシンプルに゛焚書構造だけをHTMLでマークアップします。
[スタイルシート]この文書構造に基づいて記述しますから分かりやすい。
ul#nav{
width:80%;
margin:0.5em auto; /*このブロックを中央に配置 */
text-align:center;
padding:0;
list-style-type:none;
line-height:2em;/* 一行の高さ */
}
ul#nav li{
display:inline-block;
width:25%;
position:relative;/* 以下の位置やサイズの基準にするため */
}
ul#nav li a{
display:block;/* スマホやタブレットで扱いやすいようブロック */
width:100%;height:100%;/* サイズはliに合わせる */
text-decoration:none;/* 下線は消す */
background-color:yellow;
}
ul#nav li a:before{
content:attr(title);
position:absolute;
top:2em;left:0;
}
ul#nav li a:hover{
background-color:orange;
}
ul#nav li a[href="http://***.com/index.html"]{
font-weight:bold;
}
1) display:inline-block;にしても、<p>というブロック要素が残ると・・
ul#nav li{display:inline;}とすればそれは防げるが、今度は改行されない(^^)
単純にマークアップしておけば、どんなにもデザインでき、デザインの幅が広がります。最初からデザインを目的にHTMLを書いたらダメなのですよ。下記ページをIEやfirefoxのような代替スタイルシートを利用できるブラウザで訪問して、[表示]→[スタイル]と進み、色々なスタイルを選択して見たり、印刷プレビューで印刷を確認して御覧なさい。
ナビゲーションリストを様々にデザインしてみよう。( http://www.ichiya.com/WebService/Howto/sample/HT … )
HTMLは、まったく文書構造しか書かれていないのでメンテナンスが楽なのが分かると思います。そんな簡単なHTMLだから、スタイルは自在に変更できる。
作成方法
1) 文書構造だけをHTMLで正確にマークアップする。
2) Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html )のDATA入力などでHTMLが正しいかチェックする。
3) 文書構造に基づいてスタイルシートを書く
★色々検索し 下記記述があったので いざ 試そうとしましたが
ulをtext-align: center;
これは間違いです。以前の古いIEはバグでそうでしたが、標準では、margin-left:auto;margin-right:auto;で中央に寄せます。IEはコレができなかった。
いずれにしても最初にする事は
1) 文書構造だけをHTMLで正確にマークアップする。
仕様書( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )をまず眼を通して、何がどこに書かれているかくらいは理解して置くこと。
最も正確で正しい情報です。ウェブや書籍では嘘のほうが多い。なぜな、仕様書を読めば正確に書かれている事を、わざわざ書くのは仕様書の存在を知らないからです。もしくは理解できてない。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS インラインブロックの中のテキストを上下中央に合わせたい 1 2022/12/24 17:46
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レスポンシブWebデザインでリン...
-
<table>の高さ固定。情報増加時...
-
リストの数字のフォントサイズ...
-
ボックスの幅を内容に合わせたい
-
excel vba で ulタグのなかのse...
-
正規表記について「除く」の表...
-
html <ul></ul>の並びで一行空...
-
リストの並べ替え
-
html/cssの、navを2段にする...
-
CSS質問:大手サイトを見ると何...
-
html <li>の中の文字一部に色を...
-
divタグ内のコンテンツが重なっ...
-
css li に入れ子で適用する範囲
-
htmlで鍵盤を描きたい
-
ulとliで囲った文字の一部を変...
-
<ul><li></li></ul>にするメリ...
-
HTMLで組織図を作成する方法
-
Tableの1セル内に画像・テキス...
-
Dreamweaverで、ul要素の下に写...
-
リストを2つに分割して、それぞ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<table>の高さ固定。情報増加時...
-
リストマーカーをボックス内に...
-
画像にリンクを張ると画像がず...
-
レスポンシブWebデザインでリン...
-
HTMLで組織図を作成する方法
-
ulタグやliタグの中でbrタグ...
-
ポップアップメニューを表のよ...
-
liタグの中に<p>タグやら<dl>を...
-
リストの数字のフォントサイズ...
-
<ul>~</ul>が二つ続くと間に改...
-
<ul><li></li></ul>にするメリ...
-
html <ul></ul>の並びで一行空...
-
ulとliで囲った文字の一部を変...
-
番号付きリスト(<Ol><Li>・・...
-
html/cssの、navを2段にする...
-
display:table;を多段表示させたい
-
HTML5のfooterに見出しを付けて...
-
divタグ内のコンテンツが重なっ...
-
リストを2つに分割して、それぞ...
-
複数行にまたがる括弧を表示し...
おすすめ情報