From 614dce643c9a182de87344e427728753a6d9a936 Mon Sep 17 00:00:00 2001 From: chicpro Date: Tue, 17 Nov 2015 16:37:30 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BA=A1=EC=B1=A0=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20=ED=8C=8C=EC=9D=BC=EB=AA=85=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/default.css | 20 ++- css/mobile.css | 17 +- lib/Excel/itemexcel.xls | Bin 33792 -> 0 bytes lib/Excel/oleread.inc.php | 271 +++++++++++++++++++++++++++++++ lib/Excel/reader.php | 2 +- plugin/kcaptcha/kcaptcha.lib.php | 6 +- theme/basic/css/default.css | 25 +-- theme/basic/css/mobile.css | 18 +- 8 files changed, 332 insertions(+), 27 deletions(-) delete mode 100644 lib/Excel/itemexcel.xls create mode 100644 lib/Excel/oleread.inc.php diff --git a/css/default.css b/css/default.css index 51e7d7f7ee..60cae9ae63 100644 --- a/css/default.css +++ b/css/default.css @@ -119,17 +119,25 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} /* ie6 이미지 너비 지정 */ .img_fix {width:100%;height:auto} -/* 캡챠 자동등록(입력)방지 기본 */ +/* 캡챠 자동등록(입력)방지 기본 -pc */ #captcha {display:inline-block;position:relative} -#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} -#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9} +#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;} +#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;vertical-align:top;padding:0;margin:0} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} #captcha #captcha_mp3 span {position:absolute;top:0;left:0;width:31px;height:31px;background:url('../img/captcha.png') no-repeat;} -#captcha #captcha_reload {position:absolute;top:31px;left:161px;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} -#captcha #captcha_reload span {position:absolute;top:0;left:0;width:31px;height:31px;background:url('../img/captcha.png') no-repeat 0 -30px;border-top:1px solid #ccc} -#captcha #captcha_key {margin:0 0 0 33px;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_reload {position:absolute;top:31px;left:161px;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../img/captcha.png') no-repeat 0 -30px;border-top:1px solid #ccc;text-indent:-999px} +#captcha #captcha_key {margin:0 0 0 33px;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em;vertical-align:top} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} +/* 캡챠 자동등록(입력)방지 기본 - mobile */ +#captcha.m_captcha audio {display:block;margin:0 0 5px;width:187px} +#captcha.m_captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-top:5px;display:block;} +#captcha.m_captcha #captcha_reload {position:static;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha.png') no-repeat 0 -30px;text-indent:-999px} +#captcha.m_captcha #captcha_reload span{display:none;} +#captcha.m_captcha #captcha_key {margin:0;padding:0 5px;width:115px;height:29px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:29px;margin-left:3px} +#captcha.m_captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} +#captcha.m_captcha #captcha_mp3 {width:31px;height:31px;background:url('../img/captcha.png') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} + /* ckeditor 단축키 */ .cke_sc {margin:0 0 5px;text-align:right} .btn_cke_sc{display:inline-block;padding:0 10px;height:23px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none;line-height:1.9em;vertical-align:middle;cursor:pointer} diff --git a/css/mobile.css b/css/mobile.css index f1a5daf570..fabb88b26f 100644 --- a/css/mobile.css +++ b/css/mobile.css @@ -53,7 +53,7 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} #hd_sch {display:none;border-top:1px solid #181818;background:#282828;text-align:center} #hd_sch h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} #hd_sch form {position:relative;padding:30px 0} -#hd_sch #sch_stx {height:30px;border:1px solid #181818;background:#323232 !important;line-height:2.5em;vertical-align:middle} +#hd_sch #sch_stx {height:30px;border:1px solid #181818;background:#323232 !important;line-height:2.5em;vertical-align:middle;color:#ccc} #hd_sch #sch_submit {margin:0;padding:0 10px;height:32px;border:0;background:#000;color:#fff;vertical-align:middle} #hd_sch #sch_close {display:block;margin:0;padding:10px 0;width:100%;border:0;background:#000;color:#fff} @@ -109,16 +109,25 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} /* 이미지 등비율 리사이징 */ .img_fix {width:100%;height:auto} -/* 캡챠 자동등록(입력)방지 기본 */ +/* 캡챠 자동등록(입력)방지 기본 - PC */ #captcha {display:inline-block;position:relative;} #captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0} #captcha audio {display:block;margin:0 0 5px;width:187px} -#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;} +#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;vertical-align:top} #captcha #captcha_reload {position:absolute;top:31px;left:161px;width:31px;height:31px;background:url('../img/captcha.png') no-repeat 0 -30px;border:none;border-top:1px solid #ccc;overflow:hidden;cursor:pointer;text-indent:-9999px;} -#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em;vertical-align:top} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;width:31px;height:31px;background:url('../img/captcha.png') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} +/* 캡챠 자동등록(입력)방지 기본 - mobile */ +#captcha.m_captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0} +#captcha.m_captcha audio {display:block;margin:0 0 5px;width:187px} +#captcha.m_captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;display:block;} +#captcha.m_captcha #captcha_reload {width:31px;height:31px;background:url('../img/captcha.png') no-repeat 0 -30px;border:none;overflow:hidden;cursor:pointer;text-indent:-9999px;position:static} +#captcha.m_captcha #captcha_key {margin:0;padding:0 5px;width:115px;height:29px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:29px;margin-left:3px} +#captcha.m_captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} +#captcha.m_captcha #captcha_mp3 {width:31px;height:31px;background:url('../img/captcha.png') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} + /*단축키일람 */ diff --git a/lib/Excel/itemexcel.xls b/lib/Excel/itemexcel.xls deleted file mode 100644 index 4da8cc5fb510321b80255db92bc06e407e154234..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33792 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 RYJrxOC-M)}zZ*;b{{W355;Xt- diff --git a/lib/Excel/oleread.inc.php b/lib/Excel/oleread.inc.php new file mode 100644 index 0000000000..c7241aa86a --- /dev/null +++ b/lib/Excel/oleread.inc.php @@ -0,0 +1,271 @@ +=4294967294) + { + $value=-2; + } + return $value; +} + + +class OLERead { + var $data = ''; + + + function OLERead(){ + + + } + + function read($sFileName){ + + // check if file exist and is readable (Darko Miljanovic) + if(!is_readable($sFileName)) { + $this->error = 1; + return false; + } + + $this->data = @file_get_contents($sFileName); + if (!$this->data) { + $this->error = 1; + return false; + } + //echo IDENTIFIER_OLE; + //echo 'start'; + if (substr($this->data, 0, 8) != IDENTIFIER_OLE) { + $this->error = 1; + return false; + } + $this->numBigBlockDepotBlocks = GetInt4d($this->data, NUM_BIG_BLOCK_DEPOT_BLOCKS_POS); + $this->sbdStartBlock = GetInt4d($this->data, SMALL_BLOCK_DEPOT_BLOCK_POS); + $this->rootStartBlock = GetInt4d($this->data, ROOT_START_BLOCK_POS); + $this->extensionBlock = GetInt4d($this->data, EXTENSION_BLOCK_POS); + $this->numExtensionBlocks = GetInt4d($this->data, NUM_EXTENSION_BLOCK_POS); + + /* + echo $this->numBigBlockDepotBlocks." "; + echo $this->sbdStartBlock." "; + echo $this->rootStartBlock." "; + echo $this->extensionBlock." "; + echo $this->numExtensionBlocks." "; + */ + //echo "sbdStartBlock = $this->sbdStartBlock\n"; + $bigBlockDepotBlocks = array(); + $pos = BIG_BLOCK_DEPOT_BLOCKS_POS; + // echo "pos = $pos"; + $bbdBlocks = $this->numBigBlockDepotBlocks; + + if ($this->numExtensionBlocks != 0) { + $bbdBlocks = (BIG_BLOCK_SIZE - BIG_BLOCK_DEPOT_BLOCKS_POS)/4; + } + + for ($i = 0; $i < $bbdBlocks; $i++) { + $bigBlockDepotBlocks[$i] = GetInt4d($this->data, $pos); + $pos += 4; + } + + + for ($j = 0; $j < $this->numExtensionBlocks; $j++) { + $pos = ($this->extensionBlock + 1) * BIG_BLOCK_SIZE; + $blocksToRead = min($this->numBigBlockDepotBlocks - $bbdBlocks, BIG_BLOCK_SIZE / 4 - 1); + + for ($i = $bbdBlocks; $i < $bbdBlocks + $blocksToRead; $i++) { + $bigBlockDepotBlocks[$i] = GetInt4d($this->data, $pos); + $pos += 4; + } + + $bbdBlocks += $blocksToRead; + if ($bbdBlocks < $this->numBigBlockDepotBlocks) { + $this->extensionBlock = GetInt4d($this->data, $pos); + } + } + + // var_dump($bigBlockDepotBlocks); + + // readBigBlockDepot + $pos = 0; + $index = 0; + $this->bigBlockChain = array(); + + for ($i = 0; $i < $this->numBigBlockDepotBlocks; $i++) { + $pos = ($bigBlockDepotBlocks[$i] + 1) * BIG_BLOCK_SIZE; + //echo "pos = $pos"; + for ($j = 0 ; $j < BIG_BLOCK_SIZE / 4; $j++) { + $this->bigBlockChain[$index] = GetInt4d($this->data, $pos); + $pos += 4 ; + $index++; + } + } + + //var_dump($this->bigBlockChain); + //echo '=====2'; + // readSmallBlockDepot(); + $pos = 0; + $index = 0; + $sbdBlock = $this->sbdStartBlock; + $this->smallBlockChain = array(); + + while ($sbdBlock != -2) { + + $pos = ($sbdBlock + 1) * BIG_BLOCK_SIZE; + + for ($j = 0; $j < BIG_BLOCK_SIZE / 4; $j++) { + $this->smallBlockChain[$index] = GetInt4d($this->data, $pos); + $pos += 4; + $index++; + } + + $sbdBlock = $this->bigBlockChain[$sbdBlock]; + } + + + // readData(rootStartBlock) + $block = $this->rootStartBlock; + $pos = 0; + $this->entry = $this->__readData($block); + + /* + while ($block != -2) { + $pos = ($block + 1) * BIG_BLOCK_SIZE; + $this->entry = $this->entry.substr($this->data, $pos, BIG_BLOCK_SIZE); + $block = $this->bigBlockChain[$block]; + } + */ + //echo '==='.$this->entry."==="; + $this->__readPropertySets(); + + } + + function __readData($bl) { + $block = $bl; + $pos = 0; + $data = ''; + + while ($block != -2) { + $pos = ($block + 1) * BIG_BLOCK_SIZE; + $data = $data.substr($this->data, $pos, BIG_BLOCK_SIZE); + //echo "pos = $pos data=$data\n"; + $block = $this->bigBlockChain[$block]; + } + return $data; + } + + function __readPropertySets(){ + $offset = 0; + //var_dump($this->entry); + while ($offset < strlen($this->entry)) { + $d = substr($this->entry, $offset, PROPERTY_STORAGE_BLOCK_SIZE); + + $nameSize = ord($d[SIZE_OF_NAME_POS]) | (ord($d[SIZE_OF_NAME_POS+1]) << 8); + + $type = ord($d[TYPE_POS]); + //$maxBlock = strlen($d) / BIG_BLOCK_SIZE - 1; + + $startBlock = GetInt4d($d, START_BLOCK_POS); + $size = GetInt4d($d, SIZE_POS); + + $name = ''; + for ($i = 0; $i < $nameSize ; $i++) { + $name .= $d[$i]; + } + + $name = str_replace("\x00", "", $name); + + $this->props[] = array ( + 'name' => $name, + 'type' => $type, + 'startBlock' => $startBlock, + 'size' => $size); + + if (($name == "Workbook") || ($name == "Book")) { + $this->wrkbook = count($this->props) - 1; + } + + if ($name == "Root Entry") { + $this->rootentry = count($this->props) - 1; + } + + //echo "name ==$name=\n"; + + + $offset += PROPERTY_STORAGE_BLOCK_SIZE; + } + + } + + + function getWorkBook(){ + if ($this->props[$this->wrkbook]['size'] < SMALL_BLOCK_THRESHOLD){ +// getSmallBlockStream(PropertyStorage ps) + + $rootdata = $this->__readData($this->props[$this->rootentry]['startBlock']); + + $streamData = ''; + $block = $this->props[$this->wrkbook]['startBlock']; + //$count = 0; + $pos = 0; + while ($block != -2) { + $pos = $block * SMALL_BLOCK_SIZE; + $streamData .= substr($rootdata, $pos, SMALL_BLOCK_SIZE); + + $block = $this->smallBlockChain[$block]; + } + + return $streamData; + + + }else{ + + $numBlocks = $this->props[$this->wrkbook]['size'] / BIG_BLOCK_SIZE; + if ($this->props[$this->wrkbook]['size'] % BIG_BLOCK_SIZE != 0) { + $numBlocks++; + } + + if ($numBlocks == 0) return ''; + + //echo "numBlocks = $numBlocks\n"; + //byte[] streamData = new byte[numBlocks * BIG_BLOCK_SIZE]; + //print_r($this->wrkbook); + $streamData = ''; + $block = $this->props[$this->wrkbook]['startBlock']; + //$count = 0; + $pos = 0; + //echo "block = $block"; + while ($block != -2) { + $pos = ($block + 1) * BIG_BLOCK_SIZE; + $streamData .= substr($this->data, $pos, BIG_BLOCK_SIZE); + $block = $this->bigBlockChain[$block]; + } + //echo 'stream'.$streamData; + return $streamData; + } + } + +} +?> \ No newline at end of file diff --git a/lib/Excel/reader.php b/lib/Excel/reader.php index 97c5becc8b..060e03b3eb 100644 --- a/lib/Excel/reader.php +++ b/lib/Excel/reader.php @@ -28,7 +28,7 @@ //require_once 'PEAR.php'; -require_once 'oleread.inc'; +require_once 'oleread.inc.php'; //require_once 'OLE.php'; define('SPREADSHEET_EXCEL_READER_BIFF8', 0x600); diff --git a/plugin/kcaptcha/kcaptcha.lib.php b/plugin/kcaptcha/kcaptcha.lib.php index 8449d1dc75..61d15548c2 100644 --- a/plugin/kcaptcha/kcaptcha.lib.php +++ b/plugin/kcaptcha/kcaptcha.lib.php @@ -237,14 +237,18 @@ function setKeyString($str){ // 캡챠 HTML 코드 출력 function captcha_html($class="captcha") { + if(is_mobile()) + $class .= ' m_captcha'; + $html .= "\n".''; //$html .= "\n".''; $html .= "\n".''; $html .= "\n".'
'; $html .= "\n".''; + if (is_mobile()) $html .= ''; //$html .= "\n".''; $html .= "\n".''; - $html .= "\n".''; + if (!is_mobile()) $html .= "\n".''; $html .= "\n".''; $html .= ''; $html .= "\n".'자동등록방지 숫자를 순서대로 입력하세요.'; diff --git a/theme/basic/css/default.css b/theme/basic/css/default.css index 0281a38b3f..24c8d4d8d6 100644 --- a/theme/basic/css/default.css +++ b/theme/basic/css/default.css @@ -119,17 +119,25 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} /* ie6 이미지 너비 지정 */ .img_fix {width:100%;height:auto} -/* 캡챠 자동등록(입력)방지 기본 */ +/* 캡챠 자동등록(입력)방지 기본 -pc */ #captcha {display:inline-block;position:relative} -#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} -#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9} +#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;} +#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;vertical-align:top;padding:0;margin:0} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} #captcha #captcha_mp3 span {position:absolute;top:0;left:0;width:31px;height:31px;background:url('../../../img/captcha.png') no-repeat;} -#captcha #captcha_reload {position:absolute;top:31px;left:161px;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;} -#captcha #captcha_reload span {position:absolute;top:0;left:0;width:31px;height:31px;background:url('../../../img/captcha.png') no-repeat 0 -30px;border-top:1px solid #ccc} -#captcha #captcha_key {margin:0 0 0 33px;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_reload {position:absolute;top:31px;left:161px;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha.png') no-repeat 0 -30px;border-top:1px solid #ccc;text-indent:-999px} +#captcha #captcha_key {margin:0 0 0 33px;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em;vertical-align:top} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} +/* 캡챠 자동등록(입력)방지 기본 - mobile */ +#captcha.m_captcha audio {display:block;margin:0 0 5px;width:187px} +#captcha.m_captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-top:5px;display:block;} +#captcha.m_captcha #captcha_reload {position:static;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha.png') no-repeat 0 -30px;text-indent:-999px} +#captcha.m_captcha #captcha_reload span{display:none;} +#captcha.m_captcha #captcha_key {margin:0;padding:0 5px;width:115px;height:29px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:29px;margin-left:3px} +#captcha.m_captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} +#captcha.m_captcha #captcha_mp3 {width:31px;height:31px;background:url('../../../img/captcha.png') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} + /* ckeditor 단축키 */ .cke_sc {margin:0 0 5px;text-align:right} .btn_cke_sc{display:inline-block;padding:0 10px;height:23px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none;line-height:1.9em;vertical-align:middle;cursor:pointer} @@ -281,8 +289,3 @@ a.btn_admin:focus, a.btn_admin:hover {text-decoration:none} /* Mobile화면으로 */ #device_change {display:block;margin:0.3em;padding:0.5em 0;border:1px solid #eee;border-radius:2em;background:#fff;color:#000;font-size:2em;text-decoration:none;text-align:center} -/*캡챠 모바일에서 피시버젼*/ -#captcha.m_captcha audio{display:block;margin:5px 0 10px} -#captcha.m_captcha #captcha_key{margin-left:3px } -#captcha.m_captcha #captcha_reload span{background:none;display:inline} -#captcha.m_captcha #captcha_reload {position:relative ;width:auto;top:0;left:0;margin:0;padding:0 10px;height:43px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer} diff --git a/theme/basic/css/mobile.css b/theme/basic/css/mobile.css index 4d0c6a9c2b..12fe1bdb02 100644 --- a/theme/basic/css/mobile.css +++ b/theme/basic/css/mobile.css @@ -53,7 +53,7 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} #hd_sch {display:none;border-top:1px solid #181818;background:#282828;text-align:center} #hd_sch h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} #hd_sch form {position:relative;padding:30px 0} -#hd_sch #sch_stx {height:30px;border:1px solid #181818;background:#323232 !important;line-height:2.5em;vertical-align:middle} +#hd_sch #sch_stx {height:30px;border:1px solid #181818;background:#323232 !important;line-height:2.5em;vertical-align:middle;color:#bbb} #hd_sch #sch_submit {margin:0;padding:0 10px;height:32px;border:0;background:#000;color:#fff;vertical-align:middle} #hd_sch #sch_close {display:block;margin:0;padding:10px 0;width:100%;border:0;background:#000;color:#fff} @@ -109,16 +109,26 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} /* 이미지 등비율 리사이징 */ .img_fix {width:100%;height:auto} -/* 캡챠 자동등록(입력)방지 기본 */ +/* 캡챠 자동등록(입력)방지 기본 - PC */ #captcha {display:inline-block;position:relative;} #captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0} #captcha audio {display:block;margin:0 0 5px;width:187px} -#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;} +#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;vertical-align:top} #captcha #captcha_reload {position:absolute;top:31px;left:161px;width:31px;height:31px;background:url('../../../img/captcha.png') no-repeat 0 -30px;border:none;border-top:1px solid #ccc;overflow:hidden;cursor:pointer;text-indent:-9999px;} -#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em;vertical-align:top} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;width:31px;height:31px;background:url('../../../img/captcha.png') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} +/* 캡챠 자동등록(입력)방지 기본 - mobile */ +#captcha.m_captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0} +#captcha.m_captcha audio {display:block;margin:0 0 5px;width:187px} +#captcha.m_captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;display:block;} +#captcha.m_captcha #captcha_reload {width:31px;height:31px;background:url('../../../img/captcha.png') no-repeat 0 -30px;border:none;overflow:hidden;cursor:pointer;text-indent:-9999px;position:static} +#captcha.m_captcha #captcha_key {margin:0;padding:0 5px;width:115px;height:29px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:29px;margin-left:3px} +#captcha.m_captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} +#captcha.m_captcha #captcha_mp3 {width:31px;height:31px;background:url('../../../img/captcha.png') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} + + /*단축키일람 */ .btn_cke_sc{background:#333;color:#fff;padding:5px;border:none;margin-bottom:5px} .cke_sc_def {margin:0 0 5px;padding:10px;border:1px solid #ccc;background:#f7f7f7;text-align:center}