2011-04-09 1 views
1

- 그림 형식, GIF, JPG, PNG, SVG 등 다양한 바코드 유형을 할당 할 수있는 클래스를 만들었습니다. - 압축 된 자바 스크립트 (JS) - 인라인 스타일을 사용하는 HTMLPHP로 인라인 스타일을 변환합니다

클래스는 이미 검정색 정보 만 '그리기'로 가능한 한 작게 바코드 출력을 줄이기 위해 최적화되었습니다.

: 예를 들어, 스타일 태그에 인라인 스타일을 변환 할 수있는 클래스 또는 함수가있는 경우 (이미 최적화되어 althought) 바코드의 HTML 버전이 거대 할 수 있기 때문에

, 내가 궁금해

<div id="mybarcode"> 
<div style="position:absolute;margin-left:26px;width:2px;height:128px;background:#000;"></div> 
<div style="position:absolute;margin-left:34px;width:2px;height:128px;background:#000;"></div> 
<div style="position:absolute;margin-left:36px;width:2px;height:48px;background:#000;"></div> 
...... 
...... 

이 내가 원하는 것입니다 : 출력 (단 몇 줄의)입니다

<style> 
    #mybarcode div {position:absolute;width:2px;height:128px;background:#000;} 
    </style> 
    .... 
    .... 

    <div id="mybarcode"> 
    <div style="margin-left:26px;"></div> 
    <div style="margin-left:34px;"></div> 
    <div style="margin-left:36px;height:48px;"> 
    .... 
    .... 

내가 원하는 것을 반대 할 수있는 클래스를 발견하지만없는 경우 내 경우. html로 그런 일을 할 수있는 클래스가 있다면 누구도 알 수 있습니까? 또한 인라인 스타일이있는 다른 페이지를 외부 CSS가있는 html로 변환하는 것이 유용 할 수 있습니다.

답장을 보내 주셔서 감사합니다. 친절하게 생각해.

+0

이것은 바코드 클래스의 HTML 생성 부분으로, 나중에 적용 할 내용이 아닌 바로 처음부터 수행해야합니다. * 마크 업 생성을 제어합니다. – thirtydot

+0

당신은 진술서에 절대적으로 맞지만 많은 형식 때문에 수업은 이미 매우 복잡합니다. 이 최적화를 코드에 통합하는 것은 쉽지 않습니다. 나중에 쉽게 수행 할 수 있습니다. 콘텐츠는 캐시되므로 한 번만 실행됩니다. – Codebeat

+0

그 반대의 클래스는 무엇입니까? – Jrgns

답변

1

너무 엄격하지 않아야합니다.

알고리즘의

일반 개요 :은 각 요소에

  • 봐와
  • style 태그 아래에 이러한 스타일을 추출 모든 요소가 공통
  • 에있는 스타일을 확인 인라인 스타일 규칙을 추출 클래스 (즉, common)
  • 중복 인라인 스타일을 제거하고
  • 요소에 common 클래스를 추가하십시오

Simple HTML Dom Parser을 사용하여 실제 요소 조작을 수행 할 수 있습니다. CSS 규칙 자체는 구문 분석하기가 쉽기 때문에 Regexes를 사용하면됩니다. 특히 귀하의 경우, HTML을 생성하는 코드를 작성 했으므로, 발생할 수있는 CSS 규칙을 정확히 알 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 CSS를 인라인 스타일 클래스와 같은 일반적인 솔루션을 원한다면 (반대 방향으로 만) 원합니다. 나는 그런 계급이 내가 바퀴를 재발 명하기 시작하는 것을 피하기 위해 주변에 있는지 아는 것을 좋아한다. 나는 또한 당신이 제안한 DOM 파서를 알고있다, 나의 CMS는 그것을 기반으로하며 훌륭하다. 하지만 나는 한 번에 모든 스타일을 얻을 수있는 함수 suGetTextBetween()도 가지고 있습니다. 그러나, 전에 말했듯이, 이미 이것에 대한 해결책이 있다면, 나는 알고 싶습니다. – Codebeat

+0

미리 만들어진 해결책을 찾을 수 없습니다. –