작성
·
101
·
수정됨
1
CSS 구조 문의드립니다.
Wrapper를 이용해서 인증번호, 재발송, 우편번호 찾기 버튼을 화면 안으로 넣고 싶은데 어떻게 하는지를 도저히 모르겠습니다.. 아시는 분은 도와주시면 정말 감사하겠습니다.
style.css 일부
/* Import Local CSS */
@import url('/css/reset.css');
@import url('/css/variables.css');
* {
font-family: var(--primary-kr);
font-weight: 500;
box-sizing: border-box;
}
body {
margin: 0;
font-family: var(--primary-kr);
color: var(--dark-black);
font-size: 14px;
}
.container {
width: 100%;
max-width: 393px;
margin: 0 auto;
padding: 16px;
background-color: var(--white);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
border-radius: 10px;
box-sizing: border-box;
font-family: var(--primary-kr);
}
.phone-input-wrapper {
display: flex; /* 플렉스 박스 설정 */
justify-content: space-between;
}
.phone-input-wrapper input[type="tel"] {
width: 60%; /* 입력 필드가 가변적인 공간을 차지 */
padding: 10px;
border: 1px solid var(--gray);
font-size: 14px;
height: 40px; /* 동일한 높이 */
box-sizing: border-box; /* 패딩과 테두리를 포함한 크기 계산 */
}
.phone-input-wrapper .btn-certification {
width: 40%; /* 선택박스의 고정 너비 */
height: 40px; /* 입력 필드와 동일한 높이 */
padding: 10px;
border: 1px solid var(--gray);
font-size: 14px;
box-sizing: border-box; /* 패딩 포함 */
}
/* 인증번호 입력 필드 */
.auth-input-wrapper {
display: flex; /* Flexbox로 가로 정렬 */
align-items: center; /* 세로 중앙 정렬 */
justify-content: space-between;
width: 100%; /* 부모 요소의 너비를 꽉 채움 */
max-width: 393px;
box-sizing: border-box; /* 패딩 포함 */
position: relative; /* 타이머 배치를 위해 필요 */
flex-wrap: wrap;
}
.auth-input-wrapper input {
flex: 0; /* 입력 필드가 가용 공간을 차지 */
height: 40px;
border: 1px solid var(--gray);
font-size: 14px;
box-sizing: border-box;
min-width: 70%; /* 최소 너비 설정 */
}
.auth-input-wrapper .timer {
flex: 0;
position: absolute; /* 입력 필드 내부 배치 */
right: 45%;
top: 50%;
transform: translateY(-50%);
font-size: 14px;
color: var(--alert-red);
pointer-events: none; /* 클릭 불가 */
}
.auth-input-wrapper .reset {
display: flex;
position: absolute;
align-items: center;
right: 40%;
justify-content: center;
text-decoration: none; /* 기본 링크 스타일 제거 */
margin-left: 10px; /* 타이머와의 간격 */
overflow: hidden;
}
.auth-input-wrapper .reset-link img {
width: 16px; /* 아이콘 크기 */
height: 16px;
}
.auth-input-wrapper .reset-link:hover {
background-color: var(--lightblue); /* 호버 시 색상 변경 */
transition: background-color 0.2s ease;
}
.auth-input-wrapper .btn-resend {
flex: 1;
height: 40px;
font-size: 14px;
color: white;
background-color: var(--blue);
border: none;
border-radius: 6px;
cursor: pointer;
white-space: nowrap; /* 텍스트 줄바꿈 방지 */
min-width: 60px; /* 버튼 최소 너비 */
}
/* 주소 필드 래퍼 */
.address-wrapper {
display: flex;
align-items: center;
width: 100%; /* 화면 너비에 맞춤 */
box-sizing: border-box;
}
.address-wrapper input[type="text"] {
width: 60%;
height: 40px;
padding: 10px;
border: 1px solid var(--gray);
font-size: 14px;
box-sizing: border-box;
min-width: calc(70% - 10px); /* 최소 너비 */
}
.address-wrapper .btn-post-search {
flex: 0 0 auto; /* 버튼 크기 고정 */
height: 40px;
padding: 0 15px;
font-size: 14px;
color: white;
background-color: var(--navybutton);
border: none;
border-radius: 6px;
cursor: pointer;
white-space: nowrap; /* 텍스트 줄바꿈 방지 */
min-width: 100px; /* 버튼 최소 너비 */
}
signup-email.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>회원가입</title>
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<!-- Signup Form -->
<div class="signup-content">
<div class="signup-field">
<label for="username">아이디<em>*</em></label>
<input type="text" id="username" placeholder="아이디 입력" required>
</div>
<div class="signup-field">
<label for="password">비밀번호<em>*</em></label>
<input type="password" id="password" placeholder="영문+숫자+특수문자 8자 이상" required>
</div>
<div class="signup-field">
<label for="password-check">비밀번호 확인<em>*</em></label>
<input type="password" id="password-check" placeholder="비밀번호 확인 입력" required>
</div>
<div class="signup-field">
<label for="name">이름<em>*</em></label>
<input type="text" id="name" placeholder="이름 입력" required>
</div>
<div class="signup-field">
<label for="email">
이메일<em>*</em>
</label>
<div class="email-input-wrapper">
<input type="email" id="email" name="email" placeholder="이메일 입력" required>
<select name="email-domain" id="email-domain">
<option value="">선택하기</option>
<option value="gmail.com">gmail.com</option>
<option value="naver.com">naver.com</option>
<option value="daum.net">daum.net</option>
</select>
<span class="dropdown-icon"></span> <!-- SVG 아이콘 위치 -->
</div>
</div>
<div class="signup-field">
<label for="phone">휴대폰<em>*</em></label>
<div class="phone-input-wrapper">
<input type="tel" id="phone" placeholder="숫자만 입력" required>
<button class="btn-certification">인증번호</button>
</div>
</div>
<div class="signup-field">
<label for="auth-code"></label>
<div class="auth-input-wrapper">
<input type="text" id="auth-code" placeholder="인증번호 입력" required>
<span class="timer">00:00</span>
<a href="#" class="reset">
<img src="/images/reset.svg" alt="Reset Icon">
</a>
<button class="btn-resend" type="button">재발송</button>
</div>
</div>
<div class="signup-field">
<label for="address">주소<em>*</em></label>
<div class="address-wrapper">
<input type="text" id="address" placeholder="주소 입력" required>
<button class="btn-post-search">우편번호 찾기</button>
</div>
</div>
<div class="signup-field">
<label for="address-detail"></label>
<input type="text" id="address-detail">
</div>
<div class="signup-field">
<label for="address-detail">상세주소<em>*</em></label>
<input type="text" id="address-detail" placeholder="상세 주소 입력" required>
</div>
<p class="notice">배송지에 따라 상품 정보가 달라질 수 있습니다.</p>
<div class="thirdline"></div> <!-- 위에 줄 -->
</div>
</body>
</html>
style.css
답변 2
0
0
강의에 없는 새로운 페이지를 만드신 듯 합니다.
질문 내용이 너무 광범위해서 답변 드리기 좀 어렵습니다.
가급적이면 강의 내용에 있는 부분만 질문 주셨으면 합니다.