이 코드가 원하는대로 작동하지 않는다는 불행한 사실을 극복하는 좋은 방법은 무엇입니까?
<div class="required">
<label>Name:</label>
<input type="text">
</div>
<style>
.required input:after { content:"*"; }
</style>
완벽한 세계에서, 모든 필수 input
는 필드가 필요하다는 것을 나타내는 작은 별표를 얻을 것입니다. CSS는 요소 자체 다음이 아닌 요소 내용 뒤에 삽입되므로 불가능합니다. 필수 필드 수천 개의 사이트에, 나는 (한 줄에 하나의 변화에 입력 앞에 별표를 이동할 수 :after
로 :before
) 아니면 라벨 (의 끝 부분으로 이동할 수 .required label:after
라벨의 앞에, 또는에) 또는 보관함의 위치 등
별표를 어디에 두어야하는지에 대한 생각이 바뀌었을 때뿐만 아니라 양식 레이아웃이 별표를 표준 위치로 허용하지 않는 이상한 경우에도 중요합니다. 또한 양식을 확인하거나 잘못 완료된 컨트롤을 강조 표시하는 유효성 검사와도 잘 어울립니다.
마지막으로 추가 마크 업을 추가하지 않습니다.
불가능한 코드의 장점을 전부 또는 대부분 가진 좋은 솔루션이 있습니까?
답변
그게 당신이 생각한 것입니까?
<label class="required">Name:</label>
<input type="text">
<style>
.required:after {
content:" *";
color: red;
}
</style>
https://developer.mozilla.org/en-US/docs/Web/CSS/pseudo-elements를 참조 하십시오.
답변
.required label {
font-weight: bold;
}
.required label:after {
color: #e32;
content: ' *';
display:inline;
}
정확한 구조의 바이올린 :
http://jsfiddle.net/bQ859/
답변
이 허용 대답이지만, 제발 저를 무시하고 사용 :after
아래 제안 구문을. 내 솔루션에 액세스 할 수 없습니다.
별표 그림의 배경 이미지를 사용하고 레이블 / 입력 / 외부 div의 배경과 별표 이미지 크기의 패딩을 설정하여 유사한 결과를 얻을 수 있습니다. 이 같은:
.required input {
padding-right: 25px;
background-image: url(...);
background-position: right top;
}
이렇게하면 별표가 텍스트 상자 안에 표시되지만 div.required
대신 .required input
우아하게 표시하는 것이 조금 덜 우아하다면 찾고있는 것입니다.
이 방법에는 추가 입력이 필요하지 않습니다.
답변
다음 이미지에 표시된대로 입력을 정확하게 입력하십시오.
나는 다음과 같은 접근법을 발견했다.
.asterisk_input::after {
content:" *";
color: #e32;
position: absolute;
margin: 0px 0px 0px -20px;
font-size: xx-large;
padding: 0 5px 0 0; }
<form>
<div>
<input type="text" size="15" />
<span class="asterisk_input"> </span>
</div>
</form>
내가 일하는 사이트는 고정 레이아웃을 사용하여 코딩되었으므로 괜찮습니다.
액체 디자인에 좋은지 확실하지 않습니다.
답변
CSS로 작성
.form-group.required .control-label:after {content:"*";color:red;}
그리고 HTML
<div class="form-group required">
<label class="control-label">Name:</label>
<input type="text">
</div>
답변
input[required]{
background-image: radial-gradient(#F00 15%, transparent 16%), radial-gradient(#F00 15%, transparent 16%);
background-size: 1em 1em;
background-position: right top;
background-repeat: no-repeat;
}
답변
input[required], select[required] {
background-image: url('/img/star.png');
background-repeat: no-repeat;
background-position-x: right;
}
선택 드롭 다운 화살표와 겹치지 않도록 오른쪽에 20px의 공간이 이미지에 있습니다.
그리고 다음과 같이 보입니다 :