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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

HTML

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

CSS

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

Q&A

解決済

2回答

1022閲覧

cssで角だけが丸い枠組みがうまく作れません。

takawork

総合スコア95

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/08/29 12:19

編集2020/08/29 14:53

イメージ説明
このような枠付きのリストを作りたいのですが、うまく行きませんでした。
・角だけを丸くしたいがradiusを入れると全部が丸くなってしまう
・各県の間の枠線が重なっていて太くなってしまっている
このような問題につまづいております。

イメージ説明
よければどのようにCSSを記述するとうまく行くかを解説お願いします。
下記は自分で書いたコードです。

<div class="pa-top-area-map"> <img class="japanMap" src="img/japanMap.png"> <ul class="map-area kyushu"> <li><a href="#">福岡</a></li> <li><a href="#">佐賀</a></li> <li><a href="#">長崎</a></li> <li><a href="#">大分</a></li> <li><a href="#">熊本</a></li> <li><a href="#">宮崎</a></li> <li><a href="#">鹿児島</a></li> </ul> </div>
.mv-right { width:50%; padding:20px; } .japanMap { height: 400px; padding-top:30px; } .map-area li { list-style:none; border:2px solid #ccc; padding:2px; width:66px; height:28px; font-size:14px; font-weight: 700; /* text-align:center; line-height: 28px; */ overflow:hidden; background-color:yellow; display: flex; justify-content: center; }

【追加の質問】

<ul class="map-area shikoku multi"> <li>愛媛</li> <li>高知</li> <li>香川</li> <li>徳島</li> </ul>
.map-area.multi { display:flex; width:120px; flex-wrap:wrap; } .map-area.multi li:nth-child(odd){ border-right:2px solid black; } .map-area.multi li:nth-child(-n+2){ border-top: none; }

このようなHTMLを追加して下記のような枠を作ろうと思ったのですが、
枠が二重になってしまったり、変な隙間が出来てしまったりとうまく出来ませんでした。
こちらの解説もお願いします。
イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

HTML - HTMLで余白が出来てしまいます。|teratail
の続きですよね。回答書いて投稿したら、すでに解決済みになってました。
なぜ、中途半端な状態で解決済みにしたのか。
今回の質問も、前回の内容を踏まえてでないと回答できません。
前回の回答も無視されてますし。

とりあえす、前回の質問を踏まえると、下記のような感じでしょうか。

CSSのリセットを追加。(コード中の全角空白はNGですよ。)

li は border-bottom で下辺だけ境界線を表示。
最後の下線は、:last-child疑似要素で消す。

全体の枠は親要素(.map-area)につける。
角丸は border-radius で。
ただし、overflow: hidden; がないと角丸にならない。

css

1/* CSSのリセット */ 2* { 3 margin: 0; 4 padding: 0; 5 box-sizing: border-box; 6 outline: none; 7} 8 9.map-area { 10 box-sizing: border-box; 11 width: 66px; 12 border:2px solid #ccc; 13 border-radius: 6px; 14 overflow: hidden; 15} 16.map-area li { 17 list-style:none; 18 border-bottom: 2px solid #ccc; 19 padding:2px; 20 width:66px; 21 height:28px; 22 font-size:14px; 23 font-weight: 700; 24 /* text-align:center; 25 line-height: 28px; */ 26 overflow:hidden; 27 background-color:yellow; 28 display: flex; 29 justify-content: center; 30} 31 32.map-area li:last-child { 33 border-bottom: none; 34} 35 36/* 以下2列(.multi)の場合 */ 37.map-area.multi { 38 display: flex; 39 width: 136px; 40 flex-wrap: wrap; 41} 42.map-area.multi li:nth-child(odd){ 43 border-right:2px solid #ccc; 44} 45.map-area.multi li:nth-last-child(2){ 46 border-bottom: none; 47}

投稿2020/08/29 12:49

編集2020/08/30 03:33
hatena19

総合スコア34075

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

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

takawork

2020/08/29 14:21

失礼しました、ベストアンサーを押し間違えてしまいました。 頂いたコードで理想とする枠が出来ました。ありがとうございます。 コードで理解出来ない部分があるのですが、なぜlast-childの下線部を消すだけでfirst-childの上線部も丸くなったのでしょうか? 感覚的には ``` .map-area li:first-child { border-top: none; } ``` が必要な気がしました。
takawork

2020/08/29 14:31

あと 福岡佐賀 長崎大分 など2列にする場合はどうすれば良いですか?
takawork

2020/08/29 14:48

HTMLは追加でこんな感じにしてみました。 <ul class="map-area shikoku multi"> <li>愛媛</li> <li>高知</li> <li>香川</li> <li>徳島</li> </ul>
takawork

2020/08/29 14:55

見辛いので質問の下に画像付きで質問を追加したので、そちらの回答も是非hatenaさんに解説頂ければと思います。よろしくお願いします。
hatena19

2020/08/30 03:34

回答のコードに追加しましたので参考にしてください。
guest

0

単純に縦並びであれば

css

1/* reset */ 2* {box-sizing: border-box; margin: 0; padding: 0; } 3 4/* 以下、リスト部分 */ 5.map-area { 6 list-style:none; 7 background-color:yellow; 8 border:2px solid #ccc; 9 width:66px; 10 border-radius: 10px; /* 角丸はお好みのサイズに */ 11} 12.map-area li { 13 border-bottom: 2px solid #ccc; 14 font-size:14px; 15 font-weight: 700; 16 line-height: 28px; 17 padding:2px; 18 text-align:center; 19} 20.map-area li:last-child { 21 border-bottom: 0; /* 一番最後の下borderだけ消す */ 22}

display: flex; などで複雑にしなくても
ul に設定を入れてしまえばシンプルにいけると思います^^

プロパティを複雑にすると
cssが膨大になりやすいですし
後々のメンテナンスが面倒になりやすいです^^;;
他の要素に使い回すなどの理由が無ければ
極力シンプルなスタイルをお勧めしますm(__)m

投稿2020/08/30 09:38

-millmill-

総合スコア676

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問