2017-12-13 43 views
0

내용이 있지만 클래스가없는 단락의 스타일을 설정하려면 아래 선택기를 결합하거나 다른 방법을 사용할 수 있어야합니다. 콘텐츠가 있지만 클래스가없는 요소의 CSS 선택기

p:not(:empty) // selector for empty paragraphs. 

p:not([class]) // selector for paras without a class attribute. 

p:not([class]):not(:empty) 

하지만 크롬에서 작동하지를 시도.

솔루션은 CSS 전용이며 크로스 브라우저 (현대식, IE6 없음!)이며 JS 또는 JQuery가 없어야합니다.

왜 내가 이것을하고 싶은지 궁금한 정보가 있습니다. 유스 케이스는 콘텐츠 편집이 가능한 입력 상자입니다. 사용자는 허용 된 스타일 중 하나를 입력에 적용해야하며 누락 된 스타일은 강조 표시해야합니다. 우리는 클래스 선택기를 설정하지 않았지만 우리가 사용하고있는 richtext 컨트롤은 사용자 입력 전에 빈 para를 필요로하기 때문에 하이라이트 스타일은 나타나지 않아야합니다. Richtext 컨트롤은 필수이므로 선택기를 변경해야합니다. 지적 한 바와 같이

+3

[this] (https://jsfiddle.net/wrcccyd2/)는 원하는 것이 아닙니까? – user7393973

+0

사과 @ user7393973 - 질문을 혼란스럽게 만들었습니다. 편집했습니다. 실제로 내용이 있지만 클래스가없는 단락 스타일을 지정해야합니다. –

+1

좋아요? 'p : not ([class]) : not (: empty) {}' – user7393973

답변

1

,

  1. p:not([class]):not(:empty) 올바른 것입니다.
  2. 그러나 p 요소는 공백 또는 br을 포함한 다른 요소가 포함되어있는 경우 :not(:empty)과 일치합니다. 리치 텍스트 컨트롤이 선두 p 요소를 적용하는 경우

, 당신은 p 별도로 상관없이 사실의 다른 선택 (적어도, 리치 텍스트 컨트롤의 인식의 하나)에 포함 된 것을 것을 목표로해야 할 수도 있습니다 그 말도 안돼 br.

+0

고마워, 좋은 제안이지만, 잠자코서, 내 뇌는 CSS 선택기 약점 때문에가 아니라 다른 조건과 이벤트 순서 때문에 스크립팅 된 솔루션으로 가야 할지도 모른다고 제안합니다. –