回答編集履歴

1

補足を受けて修正

2019/07/01 16:40

投稿

mepon
mepon

スコア480

test CHANGED
@@ -29,3 +29,147 @@
29
29
  実際はどうなってるか分かりませんが`text-align:center;`も効いてないような気がするので
30
30
 
31
31
  こっちも`p要素`に入れるといいかもしれません。
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+ 追記やその他回答を受けて
40
+
41
+ ---
42
+
43
+ dit.さんが仰るようにtableで組めるのであればそれに越したことはありません。
44
+
45
+ どうしても`div`で組みたい場合の回答をします。
46
+
47
+
48
+
49
+ まず、提示されたコードでは`display:inline-block`のため
50
+
51
+ 要素が横並びとなり、縦積みにならないので**再現しません。**
52
+
53
+ そして、`div要素`に`width`が設定されていないが、
54
+
55
+ `text-align:center`が効いているため、要素は画面いっぱいなのに(borderも画面いっぱいになる)
56
+
57
+ テキスト要素のみが中央に寄った状態になり、画面が崩れています。
58
+
59
+ これは、ブロック要素を動かすのに`text-align`は使えないってやつです。
60
+
61
+
62
+
63
+ 上記を踏まえて、修正したコードです。
64
+
65
+ ```HTML
66
+
67
+ <div class="infomation_box">
68
+
69
+ <p class="left_info_box">来院目的</p>
70
+
71
+ <p class="right_info_box">初めての来院(初めて〇〇〇動物病院に来院さ…</p>
72
+
73
+ </div>
74
+
75
+ <div class="infomation_box top_border_none">
76
+
77
+ <p class="left_info_box">希望日時</p>
78
+
79
+ <p id="preffered_date" class="right_info_box">2019年06月15日(土)10時30分</p>
80
+
81
+ </div>
82
+
83
+ ```
84
+
85
+ ```CSS
86
+
87
+ .infomation_box{
88
+
89
+ /*text-align:center;*/
90
+
91
+ border: 1px solid orange;
92
+
93
+ height:40px;
94
+
95
+ width:30%; /*要素の幅を指定する*/
96
+
97
+ margin-left:auto;
98
+
99
+ margin-right:auto;
100
+
101
+ }
102
+
103
+ .top_border_none {
104
+
105
+ border-top-style: none;
106
+
107
+ }
108
+
109
+ .left_info_box{
110
+
111
+ display: inline-block;
112
+
113
+ background-color: #ffce75;
114
+
115
+ border-right: 1px solid orange;
116
+
117
+ width: 165px;
118
+
119
+ padding: 3px 10px;
120
+
121
+ border-bottom: orange;
122
+
123
+ font-weight: bold;
124
+
125
+ font-size: 14px;
126
+
127
+ line-height: 2.5;
128
+
129
+ text-align: right;
130
+
131
+ height:34px;
132
+
133
+ }
134
+
135
+ .right_info_box{
136
+
137
+ display: inline-block;
138
+
139
+ font-size: 14px;
140
+
141
+ margin-left: 7px;
142
+
143
+ margin-right: 21px;
144
+
145
+ margin-left: 7px;
146
+
147
+ margin-top: 10px;
148
+
149
+ margin-bottom: 9px;
150
+
151
+ }
152
+
153
+ ```
154
+
155
+
156
+
157
+ 変更点は、`div要素`を2個に分ける事で縦積みにしてます。
158
+
159
+ 縦積みにすることで中央の`border`が被って濃くなってしまうため
160
+
161
+ 下段`div要素`に対し`border-top-style: none;`を設定することで
162
+
163
+ `border`の被りを無くしています。
164
+
165
+
166
+
167
+ `div要素`を画面中央に配置するために、widthを設定し(ここはあとで調整してください)
168
+
169
+ marginをautoにすることで要素を画面中央にもってくるようにしました。
170
+
171
+
172
+
173
+ [Codepenサンプル](https://codepen.io/anon/pen/YoaVbX)
174
+
175
+ [上記コードのサンプルです]