728x90

IE Conditional Comments 필터링

2007.08.27 , 오후 01:45 접근성,코드 7 comments »

W3C의 규격에 의거하여 CSS 코드를 작성하더라도, 각각의 웹 브라우저마다 웹 페이지가 다르게 출력되는 문제가 있습니다. 이러한 문제는 브라우저들이 CSS 규격을 조금씩 서로 다르게 해석하고 출력할 뿐더러, 몇몇 규격은 전혀 출력하지 못하기 때문에 발생합니다.

이처럼 브라우저가 CSS W3C 규격과 다르게 출력하거나, 전혀 출력하지 못하는 문제를 CSS 출력 버그(CSS Rendering Bug)라고 합니다. CSS 출력 버그는 표준을 준수하여 웹 페이지를 제작할 때 가장 큰 걸림돌이 됩니다. W3C 규격 외에도 각각의 웹 브라우저들의 CSS 출력 현황에 대해서도 이해해야 하며, 이러한 버그들을 잡는 방법까지 파악해야 하기 때문입니다.

IE7, FF1~2, Opera9, Safari처럼 최근에 출시된(morden) 웹 브라우저들은 W3C 규격에 맞춰서 CSS를 출력합니다. 문제는 IE6, NN7 이하의 오래된 브라우저들이죠. 특히 높은 브라우저 시장 점유율을 기록중인 IE6 브라우저의 CSS 출력 버그들이 큰 문제입니다.

이러한 CSS 출력 버그들을 CSS Hack Filtering으로 대처할 수 있습니다. 예전에는 CSS Hack을 많이 사용했으나, IE7이 출시된 이후로는 CSS Filtering을 주로 사용합니다. 특히 사용이 간단하고 MS에서 추천하는 방법인 IE Conditional Comments Filtering(IE CC-필터링)을 가장 많이 사용합니다.

IE CC-필터링 소개

IE Conditional Comments MS에서 제시한 방법으로 MS IE5 이상의 브라우저에서 사용할 수 있습니다. 이 방법을 이용하면 IE 버전에 따라 HTML 코드를 숨기거나 보일 수 있습니다. 사용자의 IE 버전 별 조건(Condition)HTML의 주석(comments)의 구조로 필터링하는 방법기에 IE-CC 필터링이라고 하며, 간단하게 IE-CCF라고 합니다.

아래의 코드를 이용하면 ie7only.css IE7에서만 사용할 수 있습니다.

<!--[if IE 7]>

<link rel="stylesheet" type="text/css" href="ie7only.css">

<![endif]-->

IE CC-필터링을 사용하는 이유

IE6 이하의 브라우저는 CSS 선택자(selector)에 접근하지 못하는 문제가 있습니다. 이 점을 이용해서 IE6 이하의 브라우저에 특정한 CSS를 추가하거나 숨기는 방법이 바로 CSS Hack입니다. 하지만 CSS2 규격에 정의된 대부분의 선택자를 이용할 수 있는 IE7이 출시되면서, 기존에 사용해왔던 대부분의 CSS Hack들 사용할 수 없게 됐습니다. 이 때문에 최근엔 대부분 웹 개발자와 디자이너들이 브라우저의 CSS 출력 버그를 대처하기 위해서 CSS Filer를 사용합니다.

물론, IE CC-필터링은 HTML에 문법에 맞지 않고 불필요한 코드를 추가하는 문제점이 있습니다. 이에 어떤 개발자는 JS를 이용해서 브라우저의 종류와 버전을 판별하는 방법을 이용하기도 합니다. 하지만 JS를 이용한 방법은 IE CC-필터링보다 코드가 길고 복잡할 뿐더러, DOM으로 접근하기엔 브라우저 파싱 순서가 늦어서 출력되는데 문제가 발생합니다. , CSS 출력 버그를 처리하는데 IE CC-필터링이 최선은 아니지만, 현재로써 가장 확실한 차선책입니다.

IE CC-필터링 사용법

IE Conditional Comments HTML 주석 구조에, IE의 조건문을 포함합니다. IE 조건문은 IE의 버전과 상하관계, 부정조건 등을 사용할 수 있습니다.

<!--[if 조건]>HTML 코드<![endif]-->

조건문에 사용할 있는 요소

Item

Example

Comment

IE

[if IE]

The only currently supported feature is the string "IE", corresponding to Internet Explorer.

value

[if IE 7]

An integer or floating point numeral corresponding to the version of the browser. Returns a Boolean value of true if the version number matches the browser version. For more information, see Version Vectors.

!

[if !IE]

The NOT operator. This is placed immediately in front of the feature, operator, or expression to reverse the Boolean meaning of the expression.

lt

[if lt IE 5.5]

The less-than operator. Returns true if the first argument is less than the second argument.

lte

[if lte IE 6]

The less-than or equal operator. Returns true if the first argument is less than or equal to the second argument.

gt

[if gt IE 5]

The greater-than operator. Returns true if the first argument is greater than the second argument.

gte

[if gte IE 7]

The greater-than or equal operator. Returns true if the first argument is greater than or equal to the second argument.

( )

[if (IE 7)]

Subexpression operators. Used in conjunction with boolean operators to create more complex expressions.

&

[if (gt IE 5)&(lt IE 7)]

The AND operator. Returns true if all subexpressions evaluate to true

|

[if (IE 6)|(IE 7)]

The OR operator. Returns true if any of the subexpressions evaluates to true.

true

[if true]

Always evaluates to true.

false

[if false]

Always evaluates to false.

IE CC-필터링 예제

IE7일 경우 ie7only.css를 사용

<!--[if IE 7]>

  <link rel="stylesheet" type="text/css"  href="ie7only.css">

<![endif]-->

IE이 아닐 경우 non-IE.css를 사용

<![if !IE]>

  <link rel="stylesheet" type="text/css"  href="non-ie.css">

<![endif]>

IE7 이하일 경우 ieOld.css를 사용

<!--[if lt IE7]>

  <link rel="stylesheet" type="text/css" href="ieOld.css">

<![endif]-->

IE일 경우 IE.js를 사용하고, IE7 이하일 경우 IE-old.css를 사용

<![if IE]>

        <script type="text/JavaScript" src="http://hooney.net/js/ie.js"></script>

        <!--[if lt IE7]>

               <link rel="stylesheet" type="text/css" href="ie-old.css">

        <![endif]-->

<![endif]-->

위에서 소개한 IE CC-필터링 외에도, 다양한 방법의 필터링 방법이 있습니다. Communis에서 CSS만을 이용하거나, HTML을 함께 이용하거나, 또는 JS를 이용하여 필터링하는 방법을 확인할 수 있습니다.

참고 URI

또 다른 읽을거리

Related Post

 

참조 사이트 - 웹쟁이 조훈의 후니넷 (http://hooney.net)

728x90
728x90

시들어가는 나뭇잎새 사이로

황금빛 햇살이 나리면,

하늘로 흐르는 구름도

하늘로 흐르는 바람도 모두 스며들어 황금빛 빛을 낸다.

728x90

'에세이' 카테고리의 다른 글

어느 봄날 진한 커피향  (0) 2013.03.08
한 순간의 마음, 너무나 아름다웠다.  (0) 2012.11.24
사랑의 엇갈림  (0) 2012.07.16
장맛비  (0) 2012.07.15
사랑이 빗줄기를 타고 내려오면  (0) 2012.07.11
728x90

1. Date - 현재 날짜 구하기

Now - 현재 날짜와 시간 구하기

예제 1 - Response.Write("오늘 날짜 : " & Date)

결과 : 오늘 날짜 : 2005-01-18

예제 2 - 2001/09/07 형식으로 날짜를 출력

Response.Write Year(Date) & "-" & Month(Date) & "-" & Day(Date)

Response.Write " " & putZero(Hour(Now())) &":"& putZero(minute(Now())) &":"& putZero(Second(Now()))

결과 : 2010-05-18 13:52:42

Function putZero(obj)

If CInt(obj) < 10 Then

putZero = "0" & obj

Else

putZero = obj

End If

End Function

DateSerial(2001, 9, 7)

결과 : 2001-09-07

 

2. DateSerial - 특정 날짜 계산해서 날짜값 구하기

예제 1 - 오늘로부터 2달 전 마지막 날을 구하기

SomeDate = DateSerial(Year(Date), Month(Date) - 1, 1 - 1)

 

3. DatePart - 날짜의 특정 부분을 표시할 수 있도록 해준다.

형식 : DatePart(interval, date[, firstdayofweek[, firstdayofyear]])

예제 1 - 원하는 날짜의 ""만 표시

DatePart("m", DateSerial(2001, 9, 13));

 

4. DateAdd - 날짜를 더하는 함수

형식 : DateAdd(interval, number, date)

예제 1 - 오늘로부터 정확히 1년전 그 주의 요일을 구하기

DatePart("w", DateAdd("y", -1, Date))

 

5. DateDiff - 두 날짜의 날 수를 구해하기

예제 1 - 현재 날짜와 SomeDate 사이에 몇 주가 있는지를 구하기

DateDiff("w",Now,SomeDate)

예제 2 - 현재 날짜와 SomeDate 사이에 몇 일이 있는지를 구하기

Dim SomeDate : SomeDate = CDate("2010-10-01")
strDate = DateDiff("d", date, SomeDate)

 

6. weekday - 요일 확인

 

7. weekdayname - 요일명 확인

예제 - currdate = now()
currid = weekday(currdate)
currname = weekdayname(currid)
response.write "today is" & currname

 

8. MonthName - 월명 확인

예제 - currid = Month(currdate)
response.Write MonthName(currid)

728x90

'프로그래밍 > asp' 카테고리의 다른 글

batch 파일 만들기  (0) 2015.04.24
ASP Session 관리  (0) 2012.10.27
ASP 정규 표현식 사용법  (0) 2012.10.04
[ASP] 날짜 형식 함수 FormatDateTime  (0) 2012.08.17
asp내장함수 모음  (0) 2012.06.27
728x90

▣ SQL Server 2005 / 2008 버전 확인 방법

SQL Server Management Studio를 사용하여 SQL Sever에 연결, [새쿼리]를 클릭 후Transact-SQL 문을 실행합니다.

SELECT  SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

위의 쿼리 문을 실행시키면 나오는 결과문에 따라 버전 상세 정보를 확인 할 수 있습니다.

 

EX) SQL Server 2005 결과
9.0.4035 SP3 Enterprise Edition
 

EX) SQL Server 2008 결과
10.0.1600.0 RTM Enterprise Edition
 

▣ SQL Server 2000 버전 확인 방법
SQL Server 2000의 경우 '쿼리 분석기'를 사용하여 SQL Server 2000에 연결 한 후, 다음 쿼리문을 실행합니다.
SELECT  SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

쿼리 문 실행 결과물로 상세 버전 확인 할 수 있습니다.

 

EX) SQL Server 2000 결과
8.00.2039 SP4 Standard Edition

 

★ SQL Server 제품 버전 목록

SQL Server 2008 version number examples:
-RTM: 10.0.1600.*
-SP1: 10.0.2531.*

 

SQL Server 2005 version number examples:
-RTM: 9.0.1399.*
-SP1: 9.0.2047.*
-SP2: 9.0.3042.*
-SP3: 9.0.4035.*

 

SQL Server 2000 version number examples:
-RTM: 8.0.194.*
-SP1: 8.0.384.*
-SP2: 8.0.534.*
-SP3: 8.0.760.0
-SP3a: 8.0.760.*
-SP4: 8.0.2039.*

728x90

'프로그래밍 > MS_SQL' 카테고리의 다른 글

mssql 2008 로그 축소  (0) 2013.04.29
mssql 2008 이후 로그 축소  (0) 2012.11.27
MSSQL 2008 로그 축소 방법  (0) 2012.09.11
MS SQL 외래키 지정  (0) 2012.09.10
MSSQL 테이블 소유자 변경  (0) 2012.09.05
728x90

[ ASP 정규 표현식 사용 예제]


Function Word_check(str,patrn)
    Dim regEx, match, matches

    SET regEx = New RegExp
    regEx.Pattern = patrn            ' 패턴을 설정합니다.
    regEx.IgnoreCase = True            ' 대/소문자를 구분하지 않도록 합니다.
    regEx.Global = True         ' 전체 문자열을 검색하도록 설정합니다.
    SET Matches = regEx.Execute(str)

 if 0 < Matches.count then
  Word_check = false
 Else
  Word_check = true
 end if
End Function

 

위의 코드는 정규식을 이용해서 문자열이 패턴만으로 이뤄졌는지 확인하는 함수 입니다.

 

사용 방법은

response.write Word_check("문자열","패턴")

몇가지 패턴을 적어보자면

pattern0 = "[^가-힣]"  '한글만
pattern1 = "[^-0-9 ]"  '숫자만
pattern2 = "[^-a-zA-Z]"  '영어만
pattern3 = "[^-가-힣a-zA-Z0-9/ ]" '숫자와 영어 한글만
pattern4 = "<[^>]*>"   '태그만

pattern5 = "[^-a-zA-Z0-9/ ]"    '영어 숫자만

728x90

'프로그래밍 > asp' 카테고리의 다른 글

ASP Session 관리  (0) 2012.10.27
asp 날짜 함수 정리  (0) 2012.10.23
[ASP] 날짜 형식 함수 FormatDateTime  (0) 2012.08.17
asp내장함수 모음  (0) 2012.06.27
ASP URLDecode 함수  (0) 2012.05.31
728x90

 

 

조율이시를 기본으로 차렸습니다.

집안에 따라서 홍동백서를 쓰는 곳도 있습니다.

728x90
728x90

아래의 쿼리로 보통 로그파일의 용량을 축소하지만,
WITH TRUNCATE_ONLY, WITH NO_LOG 옵션은 SQL2008 이후 버젼에서는 지원되지 않습니다.

BACKUP LOG MNET_BIlL_DB WITH TRUNCATE_ONLY 를 실행하면 아래와 같은 에러가 발생합니다.
'TRUNCATE_ONLY'은(는) 인식할 수 없는 BACKUP 옵션입니다.

#기존 사용 방법
-- 트랜잭션로그파일최소의단위로축소
BACKUP LOG MNET_BIlL_DB WITH TRUNCATE_ONLY

-- 트랜잭션로그파일을삭제

BACKUP log MNET_BIlL_DB WITH NO_LOG

-- 트랜잭션로그파일을10메가로생성

DBCC SHRINKFILE (MNET_BIlL_DB_log, 10)

SQL2008 이후 버젼부터는 아래의 방법으로 해결하시면 됩니다.
-- 복구모델을 SIMPLE로 변경 후 SHRINKFILE을 이용해 로그를 삭제 후 다시 복구모델을 FULL로 변경

EX)
EXEC sp_helpdb MNET_BIlL_DB
go

--namesize

--MNET_BIlL_DB667904 KB

--MNET_BIlL_DB_log770752 KB

-- 복구모델을변경

ALTER DATABASE MNET_BIlL_DB SET RECOVERY SIMPLE

go

-- 로그를잘라낸다.

DBCC SHRINKFILE(MNET_BIlL_DB_log)

go

EXEC sp_helpdb MNET_BIlL_DB

go

-- 축소되었다.

--namesize

--MNET_BIlL_DB667904 KB

--MNET_BIlL_DB_log 576 KB

-- 복구모델을변경

ALTER DATABASE MNET_BIlL_DB SET RECOVERY FULL

go


아래는 트랜잭션 로그 축소 참고 링크입니다.
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=2008&document_srl=347242
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98&document_srl=366033
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=%EB%A1%9C%EA%B7%B8&document_srl=105214
http://www.sqler.com/index.php?_filter=search&mid=bColumn&search_target=title&search_keyword=%EB%A1%9C%EA%B7%B8&document_srl=129640

728x90

'프로그래밍 > MS_SQL' 카테고리의 다른 글

mssql 2008 이후 로그 축소  (0) 2012.11.27
MS SQL 버전 확인 법  (0) 2012.10.19
MS SQL 외래키 지정  (0) 2012.09.10
MSSQL 테이블 소유자 변경  (0) 2012.09.05
트랜젝션 고립화 수준  (0) 2012.06.25
728x90

ALTER TABLE [외래키를 지정할 테이블명]

ADD CONSTRAINT FK_제약이름

FOREIGN KEY(외래키컬럼명) REFERENCES [기본키를 가진 테이블명](테이블이름)

 

(예제)

ALTER TABLE SALES

ADD CONSTRINT FK_SHOP_SALES

FOREIGN KEY(SALES_SHOP_ID) REFERENCES SHOP(SHOP_ID)

 

728x90

'프로그래밍 > MS_SQL' 카테고리의 다른 글

MS SQL 버전 확인 법  (0) 2012.10.19
MSSQL 2008 로그 축소 방법  (0) 2012.09.11
MSSQL 테이블 소유자 변경  (0) 2012.09.05
트랜젝션 고립화 수준  (0) 2012.06.25
MSSQL identity 값 초기화  (0) 2012.04.04

+ Recent posts