فهرست منبع

모바일 회원가입 개발 중

jsshin 5 سال پیش
والد
کامیت
f4c9224a56

+ 439 - 0
src/main/webapp/WEB-INF/views/mob/customer/JoinFormMob.html

@@ -0,0 +1,439 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="mob/common/layout/LoginLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : JoinTypeFormMob.html
+ * @desc    : 회원정보 입력 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.16   jsshin     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<style>
+	.show{display:block}
+	.hide{display:none}
+</style>
+<main class="container mb">
+	<!-- ★ 컨텐츠 시작 -->
+	<section class="content mb_join_2">
+		<div class="inner">
+			<div class="close">
+				<a href="javascript:void(0)" class="btn_close" onclick="cfnGoToPage(_PAGE_MAIN);"><span></span><span></span></a>
+			</div>
+		</div>
+		<div class="inner">
+			<h2 class="title">회원정보 입력</h2>
+		</div>
+		<div class="inner">
+
+			   <form class="form_wrap form_full" role="form">
+					<div class="form_head">
+						<h2 class="title sr-only">회원정보 입력</h2>
+					</div>
+					<!-- 아이디 사용가능시 -->
+					<div class="form_field">
+						<label class="input_label sr-only">아이디</label>
+						<div class="input_wrap form_full">
+							<input type="text" id="custId" name="custId" placeholder="아이디" class="form_control" required="required" data-valid-type="alphaNumeric" data-valid-name="아이디" minlength="4" maxlength="12"/>
+							<span class="usable" style="display:block;"></span>
+						</div>
+						<div id="dupCustIdDiv" class="help_block hide">
+							<p class="t_err">이미 가입된 아이디입니다.다른 아이디를 입력하여 주세요.</p>
+						</div>
+					</div>
+					<!-- //아이디 사용가능시 -->
+					<!-- 오류시 부모 div에서 제어 -->
+					<div class="form_field">
+						<label class="input_label sr-only">비밀번호</label>
+						<div class="input_wrap form_full">
+							<input type="password" id="passwd" name="passwd" placeholder="비밀번호 (8~20자 영문, 숫자, 특수문자 중 2가지 이상 조합)" class="form_control" minlength="8" maxlength="20" required="required" data-valid-name="비밀번호"/><!-- 잘못기입된 경우 class "err" 추가 -->
+							<!-- case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+							<div class="help_block">
+								<!-- 사용불가 비밀번호일경우 -->
+								<p class="mt10">
+									<span id="firstFailed" class="c_gray">
+										<i class="ico ico_check gray mr5"></i>영문(대/소문자), 숫자, 특수문자 중 2가지 이상 조합(8~20자)<br>
+									</span>
+									<span id="secondFailed" class="c_gray">
+										<i class="ico ico_check gray mr5"></i>4개이상 연속되거나 동일한 문자/숫자 제외<br>
+									</span>
+									<span id="thirdFailed" class="c_gray">
+										<i class="ico ico_check gray mr5"></i>아이디 제외
+									</span>
+								</p>
+								<!-- //사용불가 비밀번호일경우 -->
+								<!-- 사용가능한 비밀번호일경우 -->
+								<p id="avlPwd" class="mt10 hide">
+									<span class="c_black2">
+										<i class="ico ico_check black mr5"></i>사용 가능한 비밀번호입니다
+									</span>
+								</p>
+								<!-- //사용가능한 비밀번호일경우 -->
+							</div>
+							<!-- //case (사용불가 비밀번호일경우,사용가능한 비밀번호일경우) -->
+						</div>
+					</div>
+					<!-- //오류시 부모 div에서 제어 -->
+					<div class="form_field">
+						<label class="input_label sr-only">비밀번호 확인</label>
+						<div class="input_wrap form_full">
+							<input type="password" id="confirmPassword" name="confirmPassword" placeholder="비밀번호 확인" class="form_control" minlength="8" maxlength="20" required="required" data-valid-name="비밀번호"/><!-- 잘못기입된 경우 class "err" 추가 -->
+							<!-- case (비밀번호확인 틀렸을경우,비밀번호 일치할경우) -->
+							<div class="help_block">
+								<!-- 비밀번호확인 틀렸을경우 -->
+								<p id="misPwd" class="t_err hide">
+									비밀번호가 일치하지 않습니다.
+								</p>
+								<!-- //비밀번호확인 틀렸을경우 -->
+								<!-- 비밀번호 일치할경우 -->
+								<p id="avlConPwd"  class="mt10 hide">
+									<span class="c_black2">
+										<i class="ico ico_check black mr5"></i>비밀번호가 일치합니다.
+									</span>
+								</p>
+								<!-- //비밀번호 일치할경우 -->
+							</div>
+							<!-- //case (비밀번호확인 틀렸을경우,비밀번호 일치할경우) -->
+						</div>
+					</div>
+					<div class="form_field">
+						<label class="input_label sr-only">이메일</label>
+						<div class="input_wrap form_full">
+							<input type="text" id="email" name="email" placeholder="이메일" class="form_control" required="required" data-valid-name="이메일" maxlength="30"/><!-- 잘못기입된 경우 class "err" 추가 -->
+							<!-- case (이메일 형식이 바르지않을경우,이미 가입되어있는 이메일인경우) -->
+							<div class="help_block">
+								<!-- 이메일 형식이 바르지않을경우 -->
+								<p id="failEmail" class="t_err hide">
+									이메일 형식이 올바르지 않습니다.
+								</p>
+								<!-- //이메일 형식이 바르지않을경우 -->
+								<!-- 이미 가입되어있는 이메일인경우 -->
+								<p id="dupEmail" class="t_err hide">
+									이미 가입된 이메일 주소입니다. 다른 이메일 주소를 입력하여 주세요.
+								</p>
+								<div id="dupEmailDiv" class="mt20 hide">
+									<button type="button" class="btn btn_default btn_sm mini" onclick="cfnGoToPage(_PAGE_LOGIN);">
+										<span>로그인</span>
+									</button>
+									<button type="button" class="btn btn_default btn_sm mini" onclick="cfnGoToPage(_PAGE_CUSTOMER_ID_FIND);">
+										<span>아이디 찾기</span>
+									</button>
+								</div>
+								<!-- //이미 가입되어있는 이메일인경우 -->
+							</div>
+							<!-- //case (이메일 형식이 바르지않을경우,이미 가입되어있는 이메일인경우) -->
+						</div>
+					</div>
+					<!-- 210415_수정 : 휴대폰 인증 수정 -->
+					<div class="form_field">
+						<label class="input_label sr-only">휴대폰번호</label>
+						<!-- 휴대폰 인증 입력 전 -->
+						<div class="input_wrap form_full">
+							<input type="text" id="cellPhnno" name="cellPhnno" placeholder="휴대폰 인증 해주세요." class="form_control" minlength="10" maxlength="11" required="required" data-valid-type="numeric" data-valid-name="휴대폰" readonly="readonly"/>
+							<button type="button" id="btnCellPhoneCertify" class="btn btn_dark btn_hp_certi">
+								<span>본인인증</span>
+							</button>
+						</div>
+						<!-- //휴대폰 인증 입력 전 -->
+
+						<!-- case (휴대폰번호 형식이 맞지 않을경우,이미 가입되어있는 핸드폰번호일경우) -->
+						<div class="help_block">
+							<p id="failPhnno" class="t_err hide">휴대폰번호를 형식에 맞게 정확히 입력해주세요</p>
+							<p id="dupPhnno" class="t_err hide">I***D로 가입된 핸드폰 번호 입니다.</p>
+							<div id="dupPhnnoDiv" class="mt20 hide">
+								<button type="button" class="btn btn_default btn_sm mini" onclick="cfnGoToPage(_PAGE_LOGIN);">
+									<span>로그인</span>
+								</button>
+								<button type="button" class="btn btn_default btn_sm mini" onclick="cfnGoToPage(_PAGE_CUSTOMER_ID_FIND);">
+									<span>아이디 찾기</span>
+								</button>
+							</div>
+						</div>
+					</div>
+					<div class="btn_group_flex">
+						<div>
+							<button type="button" id="btnJoin" class="btn btn_primary btn_block" disabled="disabled">
+								<span>동의하고 가입하기</span>
+							</button>
+						</div>
+					</div>
+					<!-- //210415_수정 : 버튼 형식 변경. -->
+					<div class="desc_wrap t_c mt20">
+						<p>
+							본인은&nbsp;만 14세 이상이며&nbsp;<a href="javascript:void(0)" onclick="cfnUseTermsLayer();">STYLE24이용약관<i class="ico ico_blank ml5"></i></a>,<br>
+							<a href="javascript:void(0)" onclick="cfnPrivacyPolicyLayer();">개인정보 수집 및 이용<i class="ico ico_blank ml5"></i></a>,
+							<a href="javascript:void(0)" onclick="cfnPrivacyTrustLayer();">개인정보 취급 위탁<i class="ico ico_blank ml5"></i></a><br>
+							내용을 확인 하였으며,동의합니다.
+						</p>
+					</div>
+				</form>
+		</div>
+
+	</section>
+	<!-- ★ 컨텐츠 종료 -->
+</main>
+
+<script th:src="@{'/biz/customer.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/customer.js"></script>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+let custIdCheck = false;
+	let passwdCheck = false;
+	let emailCheck = false;
+	let authCheck = false;
+
+	// 아이디 확인
+	$('#custId').on('blur', function () {
+		let custId = $(this).val();
+		if(!gagajf.isNull(custId)) {
+			if (custId.length > 3) {
+				let custInfo = {};
+				custInfo.custId = custId;
+				let jsonData = JSON.stringify(custInfo);
+				gagajf.ajaxJsonSubmit('/customer/join/id/check', jsonData, fnIdConfirmCallBack);
+			}
+		}
+	});
+
+	// 아이디 결과
+	var fnIdConfirmCallBack = function (result) {
+		const $dupCustIdDiv = $('#dupCustIdDiv');
+		const $custId = $('#custId');
+		const $usable = $('span > .usable');
+
+		if (result.isFind) { // 중복된 아이디가 존재
+			$custId.addClass('err');
+			$custId.removeClass('usable');
+			$dupCustIdDiv.show();
+			$usable.hide();
+			custIdCheck = false;
+		} else {
+			$custId.removeClass('err');
+			$custId.addClass('usable');
+			$dupCustIdDiv.hide();
+			$usable.show();
+			custIdCheck = true;
+		}
+		fnPossibleJoin();
+	};
+
+	// 비밀번호 입력
+	$('#joinForm input[name=passwd]').on('focusout keyup keydown', function () {
+		fnCheckPassword();
+	});
+
+	// 비밀번호 확인 입력
+	$('#joinForm input[name=confirmPassword]').on('focusout keyup keydown', function () {
+		fnCheckConfirmPassword();
+	});
+
+	// 비밀번호 확인
+	var fnCheckPassword = function () {
+		const $firstFailed = $('#firstFailed');
+		const $secondFailed = $('#secondFailed');
+		const $thirdFailed = $('#thirdFailed');
+		const $avlPwd = $('#avlPwd');
+		const red = 'c_red2';
+		const gray = 'c_gray';
+
+		let custId = $('#joinForm input[name=custId]').val();
+		let password = $('#joinForm input[name=passwd]').val();
+		let confirmPassword = $('#joinForm input[name=confirmPassword]').val();
+		let pwdCheck = true;
+
+
+		// 영문, 숫자, 특수문자 2종 이상 혼용 || 길이
+		if (fnValidtaionPwdMixedWord(password) || fnValidationPwdLength(password)) {
+			pwdCheck = false;
+			$firstFailed.removeClass(gray);
+			$firstFailed.addClass(red);
+		} else {
+			$firstFailed.removeClass(red);
+			$firstFailed.addClass(gray);
+		}
+
+		// 동일한 문자/숫자 4자이상 || 연속된 문자가 4자이상
+		if (fnValidationPwdSameWord(password) || fnValidtaionPwdCntnsWord(password)) {
+			pwdCheck = false;
+			$secondFailed.removeClass(gray);
+			$secondFailed.addClass(red);
+		} else {
+			$secondFailed.removeClass(red);
+			$secondFailed.addClass(gray);
+		}
+
+		// 아이디 포함
+		if (!gagajf.isNull(custId)) {
+			if (fnValidationPwdSameId(password, custId)) {
+				pwdCheck = false;
+				$thirdFailed.removeClass(gray);
+				$thirdFailed.addClass(red);
+			} else {
+				$thirdFailed.removeClass(red);
+				$thirdFailed.addClass(gray);
+			}
+		}
+
+		if (pwdCheck) {
+			$firstFailed.hide();
+			$secondFailed.hide();
+			$thirdFailed.hide();
+			$avlPwd.show();
+		} else {
+			$firstFailed.show();
+			$secondFailed.show();
+			$thirdFailed.show();
+			$avlPwd.hide();
+		}
+
+		if (!gagajf.isNull(confirmPassword)) {
+			fnCheckConfirmPassword();
+		}
+
+	};
+
+	// 비밀번호 확인
+	var fnCheckConfirmPassword = function () {
+		const $misPwd = $('#misPwd');
+		const $avlConPwd = $('#avlConPwd');
+		let password = $('#joinForm input[name=passwd]').val();
+		let confirmPassword = $('#joinForm input[name=confirmPassword]').val();
+		let sameConfirmPwd = fnValidationPwdSameConfirmPwd(password, confirmPassword);
+
+		if (sameConfirmPwd) {
+			$avlConPwd.show();
+			$misPwd.hide()
+			passwdCheck = true;
+		} else {
+			$misPwd.show();
+			$avlConPwd.hide();
+			passwdCheck = false;
+		}
+		fnPossibleJoin();
+
+	};
+
+	//	이메일 확인
+	$('#email').on('blur', function () {
+		const $failEmail = $('#failEmail');
+		let email = $(this).val();
+		let validation;
+
+		if(!gagajf.isNull(email)) {
+			if (!fnCheckValidationEmail(email)) {
+				$failEmail.show();
+				emailCheck = false;
+				validation = false;
+			} else {
+				validation = true;
+				$failEmail.hide();
+			}
+			if (validation) {
+				let custInfo = {};
+				custInfo.email = email;
+				let jsonData = JSON.stringify(custInfo);
+				gagajf.ajaxJsonSubmit('/customer/email/check', jsonData, fnEmailConfirmCallBack);
+			}
+		}
+	});
+
+	// 이메일 확인 결과
+	var fnEmailConfirmCallBack = function (result) {
+		const $dupEmail = $('#dupEmail');
+		const $dupEmailDiv = $('#dupEmailDiv');
+		if (result.isFind) { // 중복된 아이디가 존재
+			$dupEmail.show();
+			$dupEmailDiv.show();
+			emailCheck = false;
+		} else {
+			$dupEmail.hide();
+			$dupEmailDiv.hide();
+			emailCheck = true;
+		}
+		fnPossibleJoin();
+	};
+
+	//휴대폰 인증
+	$('#btnCellPhoneCertify').on('click', function () {
+		cfnOpenCellphoneCertify();
+	});
+
+	// 나이스 본인인증 후 콜백
+	var fnNiceCallBack = function(encData) {
+		if (!gagajf.isNull(encData)) {
+			let custInfo = {};
+			custInfo.encData = encData;
+			let jsonData = JSON.stringify(custInfo);
+			gagajf.ajaxJsonSubmit('/customer/authentication/check', jsonData, fnInfoConfirmCallBack);
+		}
+	};
+
+	// 본인인증 후 결과
+	var fnInfoConfirmCallBack = function (result) {
+		const $cellPhnno = $('#cellPhnno');
+		const $dupPhnno = $('#dupPhnno');
+		const $dupPhnnoDiv = $('#dupPhnnoDiv');
+		const $btnCellPhoneCertify = $('#btnCellPhoneCertify');
+		$cellPhnno.val(result.cellPhnno);
+
+		if (result.isFind) { // 가입된 고객 정보가 있으면
+			let msg = '';
+			if (result.custStat === 'G104_30') {
+				msg = "탈퇴한 회원입니다. 탈퇴 후 60일 동안 재가입이 불가능합니다.";
+			} else {
+				msg = result.maskingCustId+"로 가입된 이력이 있습니다.";
+			}
+			$dupPhnno.html(msg);
+			$dupPhnno.show();
+			$dupPhnnoDiv.show();
+			authCheck = false;
+		} else {
+			$dupPhnno.hide();
+			$dupPhnnoDiv.hide();
+			authCheck = true;
+		}
+		$btnCellPhoneCertify.find('span').text('인증완료');
+		$btnCellPhoneCertify.attr('disabled', true);
+		fnPossibleJoin();
+	};
+
+	// 저장
+	$('#btnJoin').on('click', function () {
+		mcxDialog.confirm("회원가입을 하시겠습니까?", {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function() {
+				$('#btnJoin').attr('disabled', true);
+				let jsonData = JSON.stringify($('#joinForm').serializeObject());
+				gagajf.ajaxJsonSubmit('/customer/join/save', jsonData, fnJoinSaveCallback);
+			}
+		});
+	});
+
+	var fnJoinSaveCallback = function (result) {
+		cfnGoToPage(_PAGE_CUSTOMER_JOIN_COMPLETE);
+	};
+
+
+	// 가입 가능한지 확인
+	var fnPossibleJoin = function () {
+		const $btnJoin = $('#btnJoin');
+		if (custIdCheck && passwdCheck && emailCheck && authCheck ) {
+			$btnJoin.attr('disabled', false);
+		} else {
+			$btnJoin.attr('disabled', true);
+		}
+	};
+	/*]]>*/
+</script>
+</th:block>
+</body>
+</html>

+ 45 - 46
src/main/webapp/WEB-INF/views/mob/customer/JoinTypeFormMob.html

@@ -19,55 +19,54 @@
 
 <body>
 <th:block layout:fragment="content">
-	<main class="container mb">
-		<!-- ★ 컨텐츠 시작 -->
-		<section class="content mb_join_1">
-			<div class="inner">
-				<div class="close">
-					<a href="javascript:void(0);" class="btn_close" onclick="cfnGoToPage(_PAGE_MAIN);"><span></span><span></span></a>
-				</div>
-			</div>
-			<div class="inner">
-				<h2 class="title">회원가입</h2>
+<main class="container mb">
+	<!-- ★ 컨텐츠 시작 -->
+	<section class="content mb_join_1">
+		<div class="inner">
+			<div class="close">
+				<a href="javascript:void(0);" class="btn_close" onclick="cfnGoToPage(_PAGE_MAIN);"><span></span><span></span></a>
 			</div>
-			<div class="inner">
-					<form class="form_wrap form_full" role="form">
-						<div class="form_head">
-							<h3 class="title sr-only">본인인증</h3>
-						</div>
-						<div class="form_sign_up">
-							<p class="c_primary t_c">STYLE24 회원으로 가입</p>
-							<p class="t_c mt10">신규 가입 시 할인 쿠폰 등<br> 다양한 혜택을 받으실 수 있습니다.</p>
-						</div>
-					   <div class="ui_row mt20">
-						   <button type="button" class="btn btn_primary" onclick="cfnGoToPage(_PAGE_CUSTOMER_JOIN);">회원가입</button>
-					   </div>
-					</form>
-					<div class="t_c sns_wrap">
-						<h3 class="sr-only">간편로그인</h3>
-						<ul class="login_utill">
-							<li class="lu_kakao">
-								<a href="javascript:void(0);" onclick="cfnLoginKakao();">
-									<div class="ico"></div>카카오로<br>시작하기
-								</a>
-							</li>
-							<li class="lu_naver">
-								<a href="javascript:void(0);" onclick="cfnLoginNaver();">
-									<div class="ico"></div>네이버로<br>시작하기
-								</a>
-							</li>
-							<li class="lu_yes24">
-								<a href="javascript:void(0);" onclick="cfnLoginYes24();">
-									<div class="ico"></div>YES24로<br>시작하기
-								</a>
-							</li>
-						</ul>
+		</div>
+		<div class="inner">
+			<h2 class="title">회원가입</h2>
+		</div>
+		<div class="inner">
+				<form class="form_wrap form_full" role="form">
+					<div class="form_head">
+						<h3 class="title sr-only">본인인증</h3>
 					</div>
-			</div>
-
-		</section>
-		<!-- ★ 컨텐츠 종료 -->
+					<div class="form_sign_up">
+						<p class="c_primary t_c">STYLE24 회원으로 가입</p>
+						<p class="t_c mt10">신규 가입 시 할인 쿠폰 등<br> 다양한 혜택을 받으실 수 있습니다.</p>
+					</div>
+				   <div class="ui_row mt20">
+					   <button type="button" class="btn btn_primary" onclick="cfnGoToPage(_PAGE_CUSTOMER_JOIN);">회원가입</button>
+				   </div>
+				</form>
+				<div class="t_c sns_wrap">
+					<h3 class="sr-only">간편로그인</h3>
+					<ul class="login_utill">
+						<li class="lu_kakao">
+							<a href="javascript:void(0);" onclick="cfnLoginKakao();">
+								<div class="ico"></div>카카오로<br>시작하기
+							</a>
+						</li>
+						<li class="lu_naver">
+							<a href="javascript:void(0);" onclick="cfnLoginNaver();">
+								<div class="ico"></div>네이버로<br>시작하기
+							</a>
+						</li>
+						<li class="lu_yes24">
+							<a href="javascript:void(0);" onclick="cfnLoginYes24();">
+								<div class="ico"></div>YES24로<br>시작하기
+							</a>
+						</li>
+					</ul>
+				</div>
+		</div>
 
+	</section>
+	<!-- ★ 컨텐츠 종료 -->
 </main>
 
 <script th:inline="javascript">

+ 106 - 17
src/main/webapp/ux/mo/css/common_m.css

@@ -187,7 +187,7 @@ i.big {font-size:18px; position:relative; top:2px;}
 .t_help {color: #888888 !important;}
 .t_info {color: #888888 !important;}
 .t_err {color: #fd4802 !important;}
-.t_err::before {content: '';display: inline-block; width:17px; height:17px; background:url('/images/mo/ico_err.png') no-repeat right top;margin: 0px 2px 0 0px;position: relative;top: 4px;left: 0;right: auto;bottom: auto;}
+.t_err::before {content: '';display: inline-block; width:1.5rem; height:1.5rem; background:url('/images/mo/ico_err.png') no-repeat right top;margin: 0px 0.6rem 0 0px;position: relative;top: 0.3rem;left: 0;right: auto;bottom: auto; background-size: 100%;}
 .t_success {color: #333333 !important;}
 
 /* textarea */
@@ -301,7 +301,7 @@ input[type="file"] {
   overflow: hidden; clip:rect(0,0,0,0); border: 0;
 }
 .fileAdd{
-  width: 72px;height:72px;border: 1px solid #dddddd;float: right;font-size: 0;
+  width: 72px;height:72px;border: 0.1rem solid #dddddd;float: left;font-size: 0;
   background: url('/images/mo/ico_btn_file.png') no-repeat;background-position: 50% 50%;
   -webkit-appearance: none; -moz-appearance: none; appearance: none;cursor: pointer; background-size:30px;
 }
@@ -584,7 +584,7 @@ top: 9px;border-color: transparent transparent #888888 transparent;}
 .ico_ipin::before {content: ""; width:20px; height:20px; background:url(/images/mo/ico_join_bg.png) no-repeat -20px 0; background-size:cover;}
 
 /* btn : btn_default, btn_more, btn_go, btn_waiting */
-.btn{display: inline-block; height: 5.0rem; margin-bottom: 0; padding: 0.4rem 1.3rem; font-size: 1.4rem; font-weight: 400; line-height: 1; color: #333333; text-align: center; white-space: nowrap; vertical-align: middle; -webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none; background-image: none; background-color: #ffffff; box-sizing: border-box; border-width: 1px; border-style: solid; border-color: #dddddd; -webkit-border-radius: 0px;-moz-border-radius: 0px;border-radius: 0px; -ms-touch-action: manipulation;touch-action: manipulation; -webkit-transition: all 200ms ease;-moz-transition: all 200ms ease;-ms-transition: all 200ms ease;-o-transition: all 200ms ease;transition: all 200ms ease; cursor: pointer; }
+.btn{display: inline-block; height: 5.0rem; margin-bottom: 0; padding: 0.4rem 1.3rem; font-size: 1.4rem; font-weight: 400; line-height: 1 !important; color: #333333; text-align: center; white-space: nowrap; vertical-align: middle; -webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none; background-image: none; background-color: #ffffff; box-sizing: border-box; border-width: 1px; border-style: solid; border-color: #dddddd; -webkit-border-radius: 0px;-moz-border-radius: 0px;border-radius: 0px; -ms-touch-action: manipulation;touch-action: manipulation; -webkit-transition: all 200ms ease;-moz-transition: all 200ms ease;-ms-transition: all 200ms ease;-o-transition: all 200ms ease;transition: all 200ms ease; cursor: pointer; }
 .btn.mini{width: auto !important; display: inline-block !important; height: 3.0rem; font-size: 1.2rem; font-weight: 300; }
 .btn_gost{position: relative; display: block; width: 100%; height: 50px; color: #333333; border-color: #dddddd; background-color: transparent; }
 .btn_more{position: relative; display: block; width: 100%; height: 50px; color: #888; border: #999 solid 1px;}
@@ -1036,7 +1036,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 .list_col2 > li{float: left; width: 50%;}
 .list_col3::after{content: ''; display: block; clear: both;}
 .list_col3 > li{float: left; width: 33.33%;}
-.txt_ref{margin-top: 10px; color: #666; padding-left: 1.5rem; position: relative;}
+.txt_ref{margin-top: 1.5rem;padding-left: 1.5rem;font-size: 1.1rem;color: #666;font-weight: 200;position: relative;}
 .txt_ref::before{content: '※'; display: block; position: absolute; left: 0; top: 0;}
 .txt_blt{padding-left: 8px; position: relative;}
 .txt_blt::before{content: ''; display: block; position: absolute; left: 0; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); width: 3px; height: 3px; background-color: #666;}
@@ -1303,14 +1303,14 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 
 /*alert confirm*/
 .dialog-mobile {
-	padding: 0 1.2rem 4rem 1.2rem;
+	padding: 0;
+	margin-left: -45%;
 	text-align:center;
 	position: fixed;
 	top: 50%;
 	left: 0;
 	z-index: 1001;
-	min-width:13.3rem;
-	max-width: 95%;
+	width: 90%;
 	background-color: rgba(255, 255, 255,1);
 	border-radius: 0px;
 	-ms-transform: translate3d(0, 0, 0);
@@ -1340,7 +1340,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 }
 .dialog-mobile .dialog-content {
 	position: relative;
-	padding:5.0rem 0 4.0rem 0;
+	padding:5.0rem 2.0rem 4.0rem 2.0rem;
 	line-height: 2em;
 	text-align: left;
 	color: #333333;
@@ -1355,10 +1355,10 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 .dialog-mobile .dialog-cancel-button {
 	display:inline-block;
 	position: relative;
-	margin:0 0.5rem;
-	padding:0 3.0rem;
-	min-width: 7.0rem;
-	height: 3.8rem;
+	margin:0;
+	padding:0;
+    width: 100%;
+    height: 3.8rem;
 	line-height: 3.8rem;
 	text-align: center;
 	font-size:1.4rem;
@@ -1376,19 +1376,106 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 	color: #000;
 	background: #fff;
 	border:1px solid #999;
-	min-width:10.0rem;
+	/* min-width:10.0rem; */
 }
 .dialog-mobile .dialog-sure-button{
 	color: #fff;
 	background:#000;
 	border:1px solid #000;
-	min-width:10.0rem;
+	/* min-width:10.0rem; */
 }
 .dialog-mobile button[i='1']{
+	color: #000 !important;
+	background:#fff !important;
+	border:1px solid #777;
+	/* min-width:10.0rem; */
+}
+.dialog-mobile button[class$='-button']:nth-last-child(2){width: 50%;}
+.dialog-mobile button[class$='-button'] +  button[class$='-button']{width: 50%;}
+
+
+/* alert 투명도 */
+.dialog-mobile.trans {
+	padding: 0 1.2rem 2.5rem 1.2rem;
+	margin-left: -45%;
+	text-align:center;
+	position: fixed;
+	top: 50%;
+	left: auto;
+	right: auto;
+	z-index: 1001;
+	min-width:13.3rem;
+	max-width: 90%;
+	background-color: rgb(14 14 14 / 0.8);
+	border-radius: 0px;
+	-ms-transform: translate3d(0, 0, 0);
+	-webkit-transform: translate3d(0, 0, 0);
+	transform: translate3d(0, 0, 0);
+}
+.dialog-mobile.trans .dialog-title {
+    padding: 0em 1em 0.5em;
+    text-align: center;
+    color: #ffffff;
+	font-size: 1.6rem;
+	font-weight: 200;
+    border-radius: 0.5rem 0.5rem 0 0;
+}
+
+.dialog-mobile.trans .dialog-content {
+	position: relative;
+	padding:2.5rem 0 0rem 0;
+	line-height: 2em;
+	text-align: left;
+	color: #ffffff;
+	font-size:1.4rem;
+	text-align:center;
+}
+.dialog-mobile.trans .dialog-content em {
+	color:#df6400
+}
+.dialog-mobile.trans .dialog-button,
+.dialog-mobile.trans .dialog-sure-button,
+.dialog-mobile.trans .dialog-cancel-button {
+	display:inline-block;
+	position: relative;
+	margin:0 0.5rem;
+	padding:0 3.0rem;
+	min-width: 7.0rem;
+	height: 3.8rem;
+	line-height: 3.8rem;
+	text-align: center;
+	font-size:1.4rem;
+	font-weight: 200;
+	cursor:pointer;
+	border-radius:0rem;
+}
+.dialog-mobile.trans .dialog-button{
+    color: #fff;
+    background: transparent;
+    border: 1px solid #dddddd;
+	min-width:10.0rem;
+	width: auto;
+}
+.dialog-mobile.trans .dialog-cancel-button {
+	color: #fff;
+    background: transparent;
+    border: 1px solid #dddddd;
+	min-width:10.0rem;
+	width: auto;
+}
+.dialog-mobile.trans .dialog-sure-button{
+	color: #fff;
+    background: transparent;
+    border: 1px solid #dddddd;
+	min-width:10.0rem;
+	width: auto;
+}
+.dialog-mobile.trans button[i='1']{
 	color: #000 !important;
 	background:#fff !important;
 	border:1px solid #777;
 	min-width:10.0rem;
+	width: auto;
 }
 
 /* 닫기 아이콘 */
@@ -1906,11 +1993,12 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 
 /* etc_closingApp */
 .app-only .guidance{width: auto;}
-.app-only .guidance{overflow: hidden;position: fixed;bottom: 0;left: 50%;z-index: 9;width: 88.888%;height: auto;margin-left: -44.444%;padding: 1.2rem 0 1.0rem;background-color: rgba(0,0,0,0.8);text-align: center;opacity: 0;}
+.app-only .guidance{overflow: hidden;position: fixed;bottom: -4rem;left: 50%;z-index: 9;width: 88.888%;height: auto;margin-left: -44.444%;padding: 1.2rem 0 1.0rem;background-color: rgba(0,0,0,0.8);text-align: center;opacity: 0;}
 .app-only .guidance:after{content: '';position: absolute;top: 0;bottom: 15px;left: 10px;width: 100%;height: 100%;z-index: -1;}
 .app-only .guidance{
     box-shadow: 0 0px 30px rgb(0 0 0 / 20%), 0 0px 30px rgb(0 0 0 / 20%);
-    mask-image: linear-gradient(to top right, transparent 49.5%, white 50.5%), linear-gradient(to top left, transparent 49.5%, white 50.5%), linear-gradient(white, white), linear-gradient(white, white);
+	/* 마스크 미사용
+	mask-image: linear-gradient(to top right, transparent 49.5%, white 50.5%), linear-gradient(to top left, transparent 49.5%, white 50.5%), linear-gradient(white, white), linear-gradient(white, white);
     -webkit-mask-image: linear-gradient(to top right, transparent 49.5%, white 50.5%), linear-gradient(to top left, transparent 49.5%, white 50.5%), linear-gradient(white, white), linear-gradient(white, white);
 	mask-size: 100% 0%, 2vh 2vh, calc(100% - 1.9vh) 100%, 100% calc(100% - 1.9vh);
     -webkit-mask-size: 100% 0%, 2vh 2vh, calc(100% - 1.9vh) 100%, 100% calc(100% - 1.9vh);
@@ -1918,6 +2006,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
     -webkit-mask-position: bottom left, bottom right, top left, top right;
     mask-repeat: no-repeat;
     -webkit-mask-repeat: no-repeat;
+	*/
 }
 .app-only .guidance p{font-size:1.3rem;font-weight: 300;color: #fff;}
 .app-only .guidance p.tit{font-size: 1.4rem;margin-bottom: 1.53rem;}
@@ -1937,7 +2026,7 @@ button.alertCls {-webkit-appearance: none;padding: 0;cursor: pointer;background:
 /* mobile type */
 /* etc_toastPopup */
 .guidance{width: auto;}
-.guidance{overflow: hidden;position: fixed;bottom: 0;left: 50%;z-index: 9;width: 88.888%;height: auto;margin-left: -44.444%;padding: 1.2rem 0 1.0rem;background-color: rgba(0,0,0,0.8);text-align: center;opacity: 0;}
+.guidance{overflow: hidden;position: fixed;bottom: -4rem;left: 50%;z-index: 9;width: 88.888%;height: auto;margin-left: -44.444%;padding: 1.2rem 0 1.0rem;background-color: rgba(0,0,0,0.8);text-align: center;opacity: 0;}
 .guidance:after{content: '';position: absolute;top: 0;bottom: 15px;left: 10px;width: 100%;height: 100%;z-index: -1;}
 .guidance{box-shadow: 0 0px 30px rgb(0 0 0 / 20%), 0 0px 30px rgb(0 0 0 / 20%);}
 .guidance p{font-size:1.3rem;font-weight: 300;color: #fff;}

+ 56 - 22
src/main/webapp/ux/mo/css/layout_m.css

@@ -126,7 +126,7 @@
 .cs_contactUs_my .header .close a{position:absolute; top:50%; right:0; margin-top:-0.8rem; width:1.8rem; height:1.8rem; font-size:0; background-color:#fff;}
 .cs_contactUs_my .inner { padding-bottom: 0;}
 .cs_contactUs_my .select_dress span { width: 0.7rem; height: 0.7rem; background: url(/images/mo/ico_star02.png) no-repeat center; background-size: 0.7rem auto; display: inline-block; margin: 0 0 0 0.5rem; }
-.cs_contactUs_my input { width: 100%; height: 4.5rem; box-sizing: border-box; font-size: 1.4rem;}
+.cs_contactUs_my input[type="text"] { width: 100%; height: 4.5rem; box-sizing: border-box; font-size: 1.4rem;}
 .cs_contactUs_my textarea { width: 100%; height: 15rem; box-sizing: border-box; padding: 1.5rem; font-size: 1.4rem;}
 .cs_contactUs_my .form_field { margin: 0 0 1.2rem; }
 .cs_contactUs_my .info_addfile ul li {font-size: 1.2rem; color: #c6c6c6;}
@@ -193,6 +193,8 @@
 
 /* ============================================ 회원가입 ============================================ */
 /* mb공통*/
+.mb .form_control {height: 4.5rem;}
+.mb h2.title {text-align: center; padding-bottom: 1.7rem; font-size: 2rem; font-weight: 500;}
 .mb .close{position: relative; height:5.2rem; margin-bottom: -1.2rem;}
 .mb .close span{position:absolute; left:50%; margin-left:-0.05rem; display:inline-block; width:0.1rem; height:1.8rem; background-color:#000; transform:rotate(45deg);}
 .mb .close span:first-child{transform:rotate(-45deg);}
@@ -201,8 +203,9 @@
 .mb .form_wrap .form_field{margin-top:1rem;}
 .mb .ui_row{margin-bottom:0;}
 .mb input[type="text"], .mb input[type="password"] {float: none;}
-.mb .sns_wrap{margin-top:4rem;}
-.mb .sns_wrap .login_utill{display:inline-block; font-size:0;}
+.mb .sns_wrap{margin-top:3rem;}
+.mb .sns_wrap > h5 {font-size: 1.4rem;}
+.mb .sns_wrap .login_utill{display:inline-block; font-size:0; margin-top: 2rem;}
 .mb .sns_wrap .login_utill > li{display:inline-block; margin-left:3.5rem;}
 .mb .sns_wrap .login_utill > li:first-child{margin-left:0;}
 .mb .sns_wrap .login_utill > li a{font-size:1.2rem;}
@@ -215,6 +218,7 @@
 .mb .sns_wrap .login_utill > li.lu_yes24 a .ico{background:#f5f5f5;}
 .mb .sns_wrap .login_utill > li.lu_yes24 a .ico:before{width:3.4rem; height:2.2rem; background-position: -3.6rem 0;}
 .mb .help_block{margin-top:1rem; font-size:1.2rem;}
+.mb .help_block .t_err {}
 .mb .btn_nonMb {display: inline-block; color: #888; font-size:1.2rem; font-weight: 200; border-bottom: 0.1rem solid #888;}
 .mb .tab_btn{margin-bottom:4rem; overflow:hidden;}
 .mb .tab_btn > li{position:relative; float:left; width:50%; height:4.5rem; line-height:4.5rem; background-color:#f5f5f5; color:#888; text-align:center;}
@@ -224,7 +228,8 @@
 .mb .radio_tab{margin-bottom:2rem;}
 .mb .radio_nav{margin-bottom:2.4rem;}
 .mb .form_sign_up{margin-top:4rem;}
-.mb .form_sign_up .c_primary{font-size:1.6rem; font-weight:600;}
+.mb .form_sign_up p:last-child {color:#888; margin-top: 1rem;}
+.mb .form_sign_up .c_primary{font-size:1.6rem; font-weight:500;}
 .mb .form_wrap .form_info {text-align:center;}
 .mb .form_wrap .form_info p {font-size:1.4rem; font-weight:300; letter-spacing:-0.025em; line-height:1.6;}
 .mb .form_wrap .form_info p.t_info {font-size:1.2rem; color:#888; font-weight:300; line-height:1.625;}
@@ -238,7 +243,9 @@
 .mb .find_result .form_print_bar ul li span.t_span {width:7.5rem; color:#888;}	
 .mb .btn_group_block {float:none; margin-top:3rem; display:flex;}
 .mb [class^="ico_content_"]::before {margin: 0px auto 1.5rem;}
-.ico_content_find::before {width:3.6rem; height:4.6rem; background:url(../images/ico_content_find.png) no-repeat 50% 50%;}
+.ico_content_find::before {width:3.6rem; height:4.6rem; background:url(/images/mo/ico_content_find.png) no-repeat 50% 50%;}
+
+.mb .btn_group_flex > div > .btn{width:100%; height:4.5rem;}
 
 /* mb_login */
 .mb .mb_login .login_check{font-size:1.2rem; line-height:1.8rem;}
@@ -270,19 +277,19 @@
 .mb_idInquiry_1 .form_field{flex-flow:row wrap; justify-content: space-between;}
 .mb_idInquiry_1 .form_field .ui_col_4{padding:0.5rem; width:auto; box-sizing:border-box;}
 .mb_idInquiry_1 .txt{margin:4rem 0; text-align:center; color:#888888;}
-.mb_idInquiry_1 .btn{width:100%; height:4.5rem;}
+.mb_idInquiry_1 .btn_group_flex > div > .btn{width:100%; height:4.5rem;}
 
 /* mb_idInquiry_2 */
-.mb_idInquiry_2 .btn{width:100%; height:4.5rem;}
+.mb_idInquiry_2 .btn_group_flex > div > .btn{width:100%; height:4.5rem;}
 
 /* mb_idInquiry_3 */
-.mb_idInquiry_3 .btn{width:100%; height:4.5rem;}
+.mb_idInquiry_3 .btn_group_flex > div > .btn{width:100%; height:4.5rem;}
 
 /* mb_idInquiry_4 */
-.mb_idInquiry_4 .btn{width:100%; height:4.5rem;}
+.mb_idInquiry_4 .btn_group_flex > div > .btn{width:100%; height:4.5rem;}
 
 /* mb_idInquiry_5 */
-.mb_idInquiry_5 .btn{width:100%; height:4.5rem;}
+.mb_idInquiry_5 .btn_group_flex > div > .btn{width:100%; height:4.5rem;}
 
 /* mb_idInquiry_6 */
 .dormant .form_wrap .form_btn::after {clear:both; display:block; content:'';}
@@ -293,22 +300,23 @@
 .dormant .form_wrap .form_summary {margin-top:3rem;}
 .dormant .form_wrap .form_summary strong {font-size:1.4rem; font-weight:300;}
 .dormant .form_wrap .form_summary p {margin-top:0.5rem; font-size:1.2rem; color:#888; font-weight:200; line-height:1.6; word-break:keep-all;}
-.mb_idInquiry_6 .btn{width:100%; height:4.5rem;}
+.mb_idInquiry_6 .btn{width:100%; height:5.2rem;}
 
 /* mb_idInquiry_7 */
-.mb_idInquiry_7 .btn{width:100%; height:4.5rem;}
+.mb_idInquiry_7 .btn_group_flex > div > .btn{width:100%; height:4.5rem;}
 
 /* mb_idInquiry_8 */
 .mb_idInquiry_8 .form_summary {padding-top:3rem; border-top: 0.1rem solid #ddd;}
-.mb_idInquiry_8 .form_summary .txt {position:relative; margin-bottom:0.6rem; font-size:1.2rem;  line-height:1;}
+.mb_idInquiry_8 .form_summary .txt {position:relative; margin-bottom:0.8rem; font-size:1.3rem;  line-height:1;}
 .mb_idInquiry_8 .form_summary .txt span.c_primary {font-size:1.2rem; font-weight:700;}
 .mb_idInquiry_8 .form_summary .btn {position:absolute; top:0.1rem; right:0; font-size:1.2rem; font-weight:300; border-color:#a7a7a7;}
-.mb_idInquiry_8 .form_summary .t_info {display:block; color:#888; font-size:1.2rem}
+.mb_idInquiry_8 .form_summary .t_info {display:block; color:#888; font-size:1.1rem}
 .mb_idInquiry_8 .form_summary .t_info:nth-of-type(4){padding-right:8rem;}
-.mb_idInquiry_8 .btn{width:100%; height:4.5rem;}
+.mb_idInquiry_8 .btn_group_flex {margin-bottom: 3rem;}
+.mb_idInquiry_8 .btn_group_flex > div > .btn{width:100%; height:4.5rem;}
 
 /* mb_join_1 */
-.mb_join_1 .btn{width:100%; height:4.5rem;}
+.mb_join_1 .btn_group_flex > div > .btn {width:100%; height:4.5rem;}
 
 /* mb_join_2 */
 .mb .mb_join_2 .form_field{display:block;}
@@ -322,8 +330,21 @@
 .mb .mb_join_3 .form_wrap .print_bar{padding:3.4rem 0; background: #f5f5f5; text-align:center;}
 .mb .mb_join_3 .btn{width:100%; height:4.5rem;}
 
-
-
+/* mb_campaign */
+.mb .campaign .form_wrap .form_info p {line-height: 1.4;}
+.mb .campaign .form_wrap .form_info p.t_info {color:#666 !important; margin-top: 1rem;}
+.campaign .info_txt {padding:1.8rem; margin-top:3rem; background:#f5f5f5;}
+.campaign .info_txt ul li {position:relative; padding-left:0.8rem; margin-bottom:0.8rem; color:#888; font-size:1.1rem; font-weight:200; line-height:1.4;}
+.campaign .info_txt ul li:last-child {margin-bottom:0;}
+.campaign .info_txt ul li:after {content:''; position:absolute; top:7px; left:0; background:#858585; width:0.2rem; height:0.2rem;}
+.campaign .info_txt ul li .mb_name {font-weight:300;}
+.campaign .info_txt ul li em {font-weight:300;}
+.campaign .btn_group_flex > div > .btn.btn_primary {border:1px solid #fd4802}
+.btn_group_flex > div > .btn.btn_primary {border:1px solid #fd4802}
+
+.mb_join_2 .input_wrap .btn_hp_certi {position: absolute; top: 0; right: 0; height: 4.5rem; margin-left: 0; font-size: 1.4rem; font-weight: 300;}
+.mb .t_err {position: relative; padding-left: 2.1rem;}
+.mb .t_err::before {position: absolute; top: 0.1rem; left: 0; margin: 0;}
 
 /* ================================================================== 제품상세 =========================================================================== */
 /* common으로 이사갈것들 */
@@ -782,6 +803,17 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .cs .fold_head .fold_state{padding:0.2rem 0.3rem;}
 .cs .fold_head .data{font-family: 'LATO', 'Noto Sans kr', sans-serif;}
 .Purchase_pop .select_custom .combo .list>li{padding:1.2rem; line-height:2rem; word-wrap: break-word;}
+/* 210415 */
+.dp .popup_box .button_list.clear button{width:100% !important;}
+.dp .open_categori a{display: inline-block;font-size: 1.2rem;font-weight: 300;padding-right: 1.4rem;background: url(/images/mo/ico_sort_arrow.png) no-repeat right center;background-size: 0.7rem 0.43rem;}
+.dp .Bulletship_foot .clear{background:#f5f5f5; margin:4rem -2rem; padding:4rem 0 2.5rem 2rem;}
+.dp .dp_Bulletship .inner:first-child{margin-bottom:0; padding-bottom:0;}
+.dp .dp_Bulletship .items_option{padding-top:0; margin:0 2rem;}
+.dp .items_option #filter{height:4.5rem; border:0.1rem solid #dddddd;}
+.dp .dp_exhibition .items_option #filter{font-size:1.2rem; color:#666666; width:100%;line-height:4.5rem; padding:0 1.5rem; background-color:#fff;}
+.dp .dp_Bulletship .items_option #filter{font-size:1.2rem; color:#666666; width:100%;line-height:4.5rem; padding:0 1.5rem; background-color:#fff;}
+.Purchase_pop .select_custom .combo .list>li[data-soldout="true"]::after{top:1rem}
+
 
 
 
@@ -1490,7 +1522,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .dp .dp_subtitle > a{position:relative; padding-right:2rem;}
 .dp .dp_subtitle > a:before{content:''; position:absolute; right:0; top:50%; margin-top:-1px; width:0.7rem; height:1.3rem; background:url(/images/mo/ico_dp_arrow.png) center center no-repeat; background-size:contain; -webkit-transform:translateY(-50%); transform:translateY(-50%);}
 .dp .category_nav {margin-bottom:0 2rem -1.3rem; display: flex; justify-content: center; border-bottom:1px solid #eeeeee;}
-.dp .category_nav ul{padding:0 2rem; display:flex;}
+.dp .category_nav ul{padding:0 2rem; display:flex; margin-left:-5.3rem;}
 .dp .category_nav ul::after {content:''; display: block; clear: both;}
 .dp .category_nav ul li {margin-right:2rem; }
 .dp .category_nav ul li button {position: relative; padding:1.5rem 0; font-size:1.4rem; font-weight:300; color:#222;}
@@ -1521,7 +1553,8 @@ header .htop.trans{position:absolute; background:transparent !important;}
 
 /* 전시상품리스트 공통(default) */
 .dp .dp_list .sub_category{padding:0.8rem 0;}
-.dp .dp_list .sub_category .cate_wrap{white-space:nowrap; overflow-x:auto;}
+.dp .dp_list .sub_category .cate_wrap{white-space:nowrap; overflow-x:auto; -ms-overflow-style: none;}
+.dp .dp_list .sub_category .cate_wrap::-webkit-scrollbar{display:none;}
 .dp .dp_list .sub_category .cate_wrap a{float:none; display:inline-block; margin-bottom:0;}
 .dp .dp_list .sub_category .cate_wrap a:first-child{margin-left:2rem;}
 .dp .dp_list .sub_category .cate_wrap a:last-child{margin-right:2rem;}
@@ -1565,7 +1598,8 @@ header .htop.trans{position:absolute; background:transparent !important;}
 /* 룩북 - dp_lookbook */
 .dp .dp_lookbook .count_wrap {padding: 1.5rem 0 2rem;}
 .dp .dp_lookbook .swiper_filter.brand{position:relative; margin-bottom:2rem;}
-.dp .dp_lookbook .swiper_filter.brand .cate_wrap{white-space:nowrap; overflow-x:auto; background-color:#fff; font-size:0;}
+.dp .dp_lookbook .swiper_filter.brand .cate_wrap{white-space:nowrap; overflow-x:auto; background-color:#fff; font-size:0; -ms-overflow-style: none;}
+.dp .dp_lookbook .swiper_filter.brand .cate_wrap::-webkit-scrollbar{display:none;}
 .dp .dp_lookbook .swiper_filter.brand .cate_wrap a {position:relative; display:inline-block; background: #fff; margin-left:0.5rem; padding:0.8em 3.4rem 0.8rem 1.2rem; font-size: 1.2rem; color: #222; border-radius:2rem; line-height: 1; border:1px solid #dddddd;}
 .dp .dp_lookbook .swiper_filter.brand .cate_wrap a:after{content:''; position:absolute; right:1.2rem; top:50%; width:0.8rem; height:0.8rem; background:url(/images/mo/ico_filter_remove.png) center center no-repeat; -webkit-transform:translateY(-50%); transform:translateY(-50%);}
 .dp .dp_lookbook .swiper_filter.brand .cate_wrap a:first-child{margin-left:0;}
@@ -1902,7 +1936,7 @@ header .htop.trans{position:absolute; background:transparent !important;}
 .filter_body > ul > li .sizebox strong{display:block;}
 /* 필터세부사항(컬러) */
 .filter_body > ul > li .colorbox{padding:2rem 1rem; display:flex; flex-wrap: wrap;}
-.filter_body > ul > li .colorbox li {margin:0.5rem 0.5rem;}
+.filter_body > ul > li .colorbox li {margin:0.5rem 0.5rem; position:relative;}
 .filter_body > ul > li .colorbox li .color-check input {position: absolute; display: block;overflow: hidden; height: 1px; width: 1px; clip: rect(1px, 1px, 1px, 1px);}
 .filter_body > ul > li .colorbox li .color-check [class*="pdColor"], 
 .filter_body > ul > li .filter_content [class*="pdColor"] {position: relative; display: inline-block; width:2.4rem; height: 2.4rem; cursor: pointer;}

+ 6 - 6
src/main/webapp/ux/mo/css/style24_m.css

@@ -652,7 +652,7 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 .ev .comment .pics {overflow:hidden; /*width: calc((100% - 3.2rem) /4);*/ width: 23%; margin:1%; height:auto; padding-top: 23%; border:none; background: #f5f5f5;}
 .ev .comment .picsThumbs {max-width:100%; max-height:none; width: 100%; height:auto;}
 /* .ev .comment .imgUpload {width: 100%; height:100%;} */
-.ev .comment .fileAdd {width: 23%; height:auto; padding-top: 23%; margin:1%;}
+.ev .comment .fileAdd {float:left; width: 23%; height:auto; padding-top: 23%; margin:1%;}
 .ev .comment .btn_wrap {padding:2rem 2rem 3rem;}
 .ev .comment .btn_wrap button.btn {width: 100%; padding:1.1rem 0; font-size: 1.4rem; font-weight: 500; height:auto;}
 .ev .comment .nodata {padding:14rem 0; font-size: 1.3rem; color: #888; text-align: center;}
@@ -677,27 +677,27 @@ main.container .inner h2[data-style~="unusual"] {font-size:2.0rem;top: 0;positio
 .modal.pop_full .modal-header {padding:1.6rem 2rem;}
 .modal.pop_full .modal-body {padding:0 2rem;}
 .modal.pop_full a.close-modal {background: url('/images/mo/ico_pop_cls.png') no-repeat center/100%; width: 1.6rem; height: 1.6rem;}
-.modal.photo_comment_popup {background: #f5f5f5; overflow:hidden;}
+.modal.photo_comment_popup {background: #f5f5f5; overflow:hidden; position: fixed; left: 0; top: 0;}
 .modal.photo_comment_popup .modal-dialog, .modal.photo_comment_popup .modal-content {height: 100%;}
 .modal.photo_comment_popup .modal-body {padding: 5.2rem 0 0; margin:0; height: 100%;}
 .modal.photo_comment_popup .modal-body .pop_cont {height: 100%; overflow:hidden; position: relative; padding-bottom: 13rem;}
-.modal.photo_comment_popup .modal-body .pop_cont .pop_slide {position: relative; height: 100%;}
+.modal.photo_comment_popup .modal-body .pop_cont .pop_slide {position: relative; height: 100%; overflow:hidden;}
 .modal.photo_comment_popup .modal-body .pop_cont .pop_slide .swiper-container {height: 100%;}
 .modal.photo_comment_popup .modal-body .pop_cont .pop_slide .swiper-pagination-fraction {bottom:2.5rem; width:auto; left: 50%; transform:translateX(-50%); background: rgba(34,34,34,.5); color: #fff; font-weight: 300;padding:0.5rem 0.7rem; line-height: 1; font-size: 1.2rem; border-radius:2rem;}
 .swiper-pagination-current {font-weight: 600;}
 /* .swiper-pagination-current:before {content:'0';} */
-.modal.photo_comment_popup .pop_detail {position: fixed; left: 0; bottom: 0; width: 100%; z-index: 99; background: #fff;  box-shadow: 0px -14px 17.8px 2.2px rgba(0, 0, 0, 0.04); font-size: 1.3rem;  transition: all 600ms cubic-bezier(0.86, 0, 0.07, 1);}
+.modal.photo_comment_popup .pop_detail {position: fixed; left: 0; bottom: 0; width: 100%; z-index: 99; background: #fff;  box-shadow: 0px -14px 17.8px 2.2px rgba(0, 0, 0, 0.04); font-size: 1.3rem;  transition: all 600ms cubic-bezier(0.86, 0, 0.07, 1); }
 .pop_slide .swiper-slide .img {}
 .pop_slide .swiper-slide img {width: auto; height: auto; max-height: 100%; max-width: 100%; margin: auto 0; position: absolute; top: 50%; bottom: auto; left: 50%; right: 0; transform: translate(-50%, -50%); cursor: pointer;}
 .modal.photo_comment_popup .pop_detail .pop_open_btn {position: absolute; left: 0; top: 0; width: 100%; background: url('/images/mo/ico_pop_arrow.png') no-repeat center; display: block; width: 100%; height: 3rem; background-position:center; background-size:3rem;}
-.modal.photo_comment_popup .pop_detail .comment_wrap {max-height: 10rem; padding:0 2rem 2rem; margin-top: 3rem; transition: all 600ms cubic-bezier(0.86, 0, 0.07, 1);}
+.modal.photo_comment_popup .pop_detail .comment_wrap {max-height: 10rem; padding:0 2rem 2rem; margin-top: 3rem; transition: all 600ms cubic-bezier(0.86, 0, 0.07, 1); overflow-y:auto;}
 .modal.photo_comment_popup .pop_detail .comment_writer {margin-top: 1.4rem;}
 .modal.photo_comment_popup .pop_detail .comment_writer .writer {margin-right: 1.2rem; padding-right: 1.2rem; border-right:1px solid #ddd; font-size: 1.1rem; color: #666;}
 .modal.photo_comment_popup .pop_detail .comment_writer .date {color: #888; font-size: 1.1rem;}
 
 .modal.photo_comment_popup .pop_detail.active {}
 .modal.photo_comment_popup .pop_detail.active .pop_open_btn {background: url('/images/mo/ico_pop_arrow_on.png') no-repeat center; display: block; width: 100%; height: 3rem; background-position:center; background-size:3rem;}
-.modal.photo_comment_popup .pop_detail.active .comment_wrap {overflow-y:auto; max-height: 34rem;}
+.modal.photo_comment_popup .pop_detail.active .comment_wrap { max-height: 34rem;}
 .modal.photo_comment_popup .modal-footer {margin-top: 0;}
 
 .paging_wrap {text-align: center; margin-top: 3.6rem;}