width:100%にするとボックス内の要素が揃わない場合の対処

HTMLとCSS

同じボックスタグ内(div, p, form等)の要素内に配置した input タグや button タグの要素幅が width: 100% としたのに揃わない。

なぜかはみ出てしまう要素があったりする。

解決方法

こんなときは、揃えたいボックスタグ内の要素に box-sizing: border-box; を指定すると解決する。

実際の例(揃わない場合)

index.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width,user-scalable=yes">
	<link rel="stylesheet" href="style.css">
	<title>TODOリスト</title>
</head>
<body>
	<form name="form1">
		<input type="text" placeholder="入力してください...">
		<button type="button">追加</button>
	</form>
</body>
</html>

フォームタグ内にテキストボックスボタンタグを配置している

style.css

*{
	margin: 0;
	padding: 0;
}

body{
	margin: 10px;
}

input{
	width: 100%;
	padding: 1em;
}

button{
	margin-top: 5px;
	width: 100%;
	padding: 0.5em 1em;
}

inputタグ、buttonタグともに width: 100% としているが以下のように揃わない。

表示イメージ

実際の例(揃う場合)

index.htmlは同じ。

style.css のinputタグ、buttonタグに box-sizing: border-box; を追加した。

style.css

/* style.css */

*{
	margin: 0;
	padding: 0;
}

body{
	margin: 10px;
}

input{
	box-sizing: border-box;
	width: 100%;
	padding: 1em;
}

button{
	box-sizing: border-box;
	margin-top: 5px;
	width: 100%;
	padding: 0.5em 1em;
}

表示イメージ

コメント

タイトルとURLをコピーしました