JSFiddle - React, Tailwind, and code Playground
HTML
<form class="h-adr">
<span class="p-country-name" style="display:none;">Japan</span>
<div class="contact">
<div class="contact-item">
<div class="contact-heading">郵便番号</div>
<div class="contact-detail contact-detail-postcode">
<span class="zipcode-mark">〒</span>
<input type="text" class="p-postal-code" size="3" maxlength="3">
<span> - </span>
<input type="text" class="p-postal-code" size="4" maxlength="4">
</div>
</div>
<div class="contact-item">
<div class="contact-heading">都道府県</div>
<div class="contact-detail contact-detail-address">
<select class="p-region-id">
<option value="">-- 選択してください --</option>
<option value="01">北海道</option>
<option value="02">青森県</option>
<option value="03">岩手県</option>
<option value="04">宮城県</option>
<option value="05">秋田県</option>
<option value="06">山形県</option>
<option value="07">福島県</option>
<option value="08">茨城県</option>
<option value="09">栃木県</option>
<option value="10">群馬県</option>
<option value="11">埼玉県</option>
<option value="12">千葉県</option>
<option value="13">東京都</option>
<option value="14">神奈川県</option>
<option value="15">新潟県</option>
<option value="16">富山県</option>
<option value="17">石川県</option>
<option value="18">福井県</option>
<option value="19">山梨県</option>
<option value="20">長野県</option>
<option value="21">岐阜県</option>
<option value="22">静岡県</option>
<option value="23">愛知県</option>
<option value="24">三重県</option>
<option...
CSS
@charset "UTF-8";
p {
line-height: 2;
}
.header {
width: 100%;
background-color: #fff;
}
.heading {
font-size: 2rem;
text-align: center;
padding: 20px 0;
}
@media screen and (max-width:767px) {
.heading {
font-size: 1.5rem;
}
}
.container {
padding: 20px 0;
max-width: 960px;
margin: auto;
}
.heading-title {
font-size: 1.875rem;
overflow: hidden;
text-align: center;
margin-bottom: 20px;
}
.heading-title-inner {
position: relative;
display: inline-block;
margin: 0 2.5em;
padding: 0 1em;
text-align: left;
}
.heading-title-inner::before,
.heading-title-inner::after {
position: absolute;
top: 50%;
content: '';
width: 400%;
height: 1px;
background-color: #ccc;
}
.heading-title-inner::before {
right: 100%;
}
.heading-title-inner::after {
left: 100%;
}
/* 郵便番号エリアのCSS */
.contact {
margin: 20px auto 50px;
border: 1px solid #dedede;
}
.contact-item {
display: flex;
}
.contact-item:not(:last-child) {
border-bottom: 1px solid #dedede;
}
.contact-heading {
display: flex;
justify-content: center;
align-items: center;
min-width: 8em;
width: 20%;
padding: 10px;
background-color: #f3f3f3;
}
.contact-detail {
width: 80%;
padding: 10px;
}
.zipcode-mark {
padding-right: 10px;
}
.contact-item input[type="text"] {
box-shadow: inset 1px 1px 3px rgba(0,0,0,.1);
border: 1px solid #ccc;
padding: 5px;
background-color: #fefefe;
}
.contact-detail-postcode input {
width: 8em;
}
@media screen and (max-width:767px) {
.contact-detail-postcode input {
width: auto;
}
}
.contact-detail-address input {
width: calc(100% - 10px);
}