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

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

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

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

解決済

3回答

8149閲覧

listを横並びにした時、widthが等間隔になるのを変えたい

naoki_m

総合スコア29

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2018/10/15 09:14

編集2018/10/15 09:58

前提・実現したいこと

下記の画像のように、リスト内の文字数が異なるため、左のほうが隙間があり、右が窮屈になっています。
この幅をここで指定して整えたいです。
イメージ説明
イメージ説明

該当のソースコード

html

1<ul class="main-menu"> 2 <li class="li1"><a href="#">人気記事</a></li> 3 <li class="li2"><a href="#">新着記事</a></li> 4 <li class="li3"><a href="#">今のおすすめ</a></li> 5 <li class="li4"><a href="#">最新レビュー</a></li> 6 </ul>

css

1ul.main-menu li { 2 display: table-cell; 3 vertical-align: middle; 4 text-align: center; 5 border-left:1px solid white; 6 font-size: 1.2vw; 7 width: 10px !important; 8 9} 10 11li.li1 { 12 box-sizing: border-box; 13 padding-right: 0; 14 padding-left: 0; 15} 16 17ul.main-menu li:first-child { 18 border:none; 19} 20ul.main-menu li a { 21 display:block; 22 text-decoration:none; 23 color:white; 24}

試したこと

・ul.main-menu li でwidthを!importantで指定しましたが、効きませんでした。
・liにクラスをそれぞれ振って、marginをマイナスにしましたが、効きませんでした。

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

Foundation6を使用しています。

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

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

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

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

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

guest

回答3

0

文字と線の間隔が場所によって異なることを気にされているのでしたら、
liwidthの指定はしない方が良いでしょう。
また、marginは線の外側の領域の指定なので、
paddingで指定しましょう。
その際、box-sizing: border-box;にしておくと調整しやすいです。

投稿2018/10/15 09:34

dice142

総合スコア5158

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

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

naoki_m

2018/10/15 09:46

ご回答ありがとうございます! ご助言の通り、widthを外し、<li>にbox-sizing: border-box;を追加して、paddingの指定を行いましたが、検証の結果、左右のpaddingは元から0のままでして、要素の中に、文字の左右にへんな隙間があるようです。
dice142

2018/10/15 09:51

へんな隙間とはpaddingで指定したものではないのですか? 現在のCSSはどうなってますか?
naoki_m

2018/10/15 10:01

paddingを0や-4pxなどで指定しても、その隙間は一向に変化しませんでした。 2枚目の画像をアップしたのでご覧いただければと思いますが、上下のpaddingはありますが、左右は消えているように見えます。 ですが文字の左右に一文字分ほどの余白が存在します。 cssも更新しましたので、li.li1 の部分をご覧いただければと思います。
dice142

2018/10/15 10:18

CSSを拝見しましたが、widthを外したとあるのに残っています。 また、私は「文字と線の間を広げたい」のかと思ってましたが、なくしたいのでしょうか? それであれば既にpaddingは元々0なので不要ですね。 提示していただいたHTMLとCSSで試してますが、そこまで幅が広くなりません。 というより10px指定なのでそんなに広がりません。 もしかして別ファイルを指定したり、他にCSSがあったりなどしませんか?
guest

0

ベストアンサー

Flexboxを使用してはいかがでしょうか。

css

1ul.main-menu { 2 padding: 0; 3 display: flex; 4} 5 6ul.main-menu li { 7 border-left: 1px solid #fff; 8 font-size: 15px; 9 list-style: none; 10} 11ul.main-menu li:first-child { border-left: none;} 12 13ul.main-menu li a { 14 display: block; 15 padding: 0 20px; 16 text-decoration: none; 17 color: #fff; 18}

文字横の空白は「ul.main-menu li a」に指定しているpaddingを編集すれば調整可能です。

Flexboxは「justify-content」等を駆使すればレスポンシブにも対応できるので、仕組みを理解すればかなり使えると思いますよ。
参考までに
https://webdesignday.jp/inspiration/pickup/4175/
https://www.webcreatorbox.com/tech/css-flexbox-cheat-sheet

投稿2018/11/01 05:22

isan

総合スコア77

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

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

0

リストが4つということで有れば、
リストの横幅を25%にてテキストを中央寄せにするのは如何でしょうか???

簡単に最小限のスタイルで作成してみました。
質問者様の考えたとおりになっているかわかりませんが、ご確認ください。

動くサンプル

投稿2018/10/15 10:38

編集2018/10/15 10:48
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問