텍스트 유형 입력 상자에 글리프 콘을 추가하려면 어떻게합니까? 예를 들어 사용자 이름 입력에 'icon-user'를 넣고 싶습니다.
텍스트 유형 입력 상자에 글리프 콘을 추가하려면 어떻게합니까? 예를 들어 사용자 이름 입력에 'icon-user'를 넣고 싶습니다.
답변:
잠시 후에 부트 스트랩에 접근 할 것입니다. 그러나이 작업을 수행하기위한 기본 CSS 개념이 있습니다. 로 먹이의 수염이 지적 , 당신은 절대적으로 입력 요소의 아이콘 내부를 배치하여 CSS와 함께이 작업을 수행 할 수 있습니다. 그런 다음 텍스트가 아이콘과 겹치지 않도록 양쪽에 패딩을 추가하십시오.
따라서 다음 HTML의 경우 :
<div class="inner-addon left-addon">
<i class="glyphicon glyphicon-user"></i>
<input type="text" class="form-control" />
</div>
다음 CSS를 사용하여 글리프를 왼쪽과 오른쪽으로 맞출 수 있습니다.
/* enable absolute positioning */
.inner-addon {
position: relative;
}
/* style icon */
.inner-addon .glyphicon {
position: absolute;
padding: 10px;
pointer-events: none;
}
/* align icon */
.left-addon .glyphicon { left: 0px;}
.right-addon .glyphicon { right: 0px;}
/* add padding */
.left-addon input { padding-left: 30px; }
.right-addon input { padding-right: 30px; }
참고 : 이것은 글리프 콘을 사용 한다고 가정 하지만 font-awesome 과 동일하게 작동합니다 .
FA를 들어, 방금 교체.glyphicon
와 함께.fa
버퍼가 지적한 바와 같이 , 이는 선택적인 아이콘과 함께 유효성 검사 상태 를 사용하여 부트 스트랩 내에서 기본적으로 수행 될 수 있습니다 . 이것은 .form-group
요소에 클래스를 .has-feedback
, 아이콘에 클래스를 부여하여 수행됩니다 .form-control-feedback
.
가장 간단한 예는 다음과 같습니다.
<div class="form-group has-feedback">
<label class="control-label">Username</label>
<input type="text" class="form-control" placeholder="Username" />
<i class="glyphicon glyphicon-user form-control-feedback"></i>
</div>
찬성 :
단점 :
단점을 극복 하기 위해 왼쪽 정렬 아이콘을 지원하도록 변경 사항 과 함께이 풀 요청을 작성 했습니다. 비교적 큰 변화이므로 향후 릴리스까지 연기되었지만 오늘 이러한 기능이 필요한 경우 간단한 구현 안내서가 있습니다.
CSS에 이러한 양식 변경 사항을 포함하십시오 (아래에 숨겨진 스택 스 니펫을 통해 인라인으로 표시됨)
* LESS : 또는 less를 통해 빌드 하는 경우 양식 변경 사항이 더 적습니다.
그런 다음 아이콘을 왼쪽 정렬하기 위해 .has-feedback-left
클래스가있는 그룹에 클래스 .has-feedback
를 포함시키기 만하면됩니다.
다른 양식 유형, 다른 컨트롤 크기, 다른 아이콘 세트 및 다른 레이블 가시성에 대해 가능한 많은 HTML 구성이 있으므로 라이브 데모와 함께 각 순열에 대해 올바른 HTML 세트를 보여주는 테스트 페이지를 만들었습니다.
찾고있는 것을 찾지 못했습니까 ? 다음과 같은 질문을 해보십시오.
.focusedInput
클래스는 이후에 정의 된 .input-group-addon
스타일 시트 그렇게 할 때 캐스케이드 아래로, 후자의 스타일이 우선해야한다. 이것이 문제가 된 시나리오를 더 잘 설명 할 수 있습니까?
공식 방법. 사용자 정의 CSS가 필요하지 않습니다.
<form class="form-inline" role="form">
<div class="form-group has-success has-feedback">
<label class="control-label" for="inputSuccess4"></label>
<input type="text" class="form-control" id="inputSuccess4">
<span class="glyphicon glyphicon-user form-control-feedback"></span>
</div>
</form>
데모 : http://jsfiddle.net/LS2Ek/1/
이 데모는 Bootstrap 문서의 예제를 기반으로합니다. http://getbootstrap.com/css/#forms-control-validation에서 "선택적 아이콘 사용"으로 스크롤하십시오.
{left:0}
글리프 콘 클래스에 추가하면 왼쪽 정렬을 처리해야합니다. jsfiddle.net/LS2Ek/30 . 그래도 개요 + 상자 그림자 접근 방식이 마음에 듭니다. 깔끔하게 보입니다!
CSS 전용 대안이 있습니다. Firefox (및 100 개의 다른 앱)와 유사한 효과를 얻기 위해 검색 필드를 설정했습니다.
여기 바이올린이 있습니다.
HTML
<div class="col-md-4">
<input class="form-control" type="search" />
<span class="glyphicon glyphicon-search"></span>
</div>
CSS
.form-control {
padding-right: 30px;
}
.form-control + .glyphicon {
position: absolute;
right: 0;
padding: 8px 27px;
}
기본 부트 스트랩 CSS v3.3.1 만 사용하여 수행 한 방법은 다음과 같습니다.
<div class="form-group">
<label class="control-label">Start:</label>
<div class="input-group">
<input type="text" class="form-control" aria-describedby="start-date">
<span class="input-group-addon" id="start-date"><span class="glyphicon glyphicon-calendar"></span></span>
</div>
</div>
그리고 이것은 다음과 같이 보입니다 :
이 '속임수'는 글리프 콘 클래스가 입력 컨트롤의 글꼴을 변경하는 부작용과 함께 작동합니다.
<input class="form-control glyphicon" type="search" placeholder=""/>
부작용을 제거하려면 "glyphicon"클래스를 제거하고 다음 CSS를 추가 할 수 있습니다 (자리 표시 자 의사 요소의 스타일을 지정하는 더 좋은 방법이있을 수 있으며 Chrome에서만 테스트했습니다).
.form-control[type="search"]::-webkit-input-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control[type="search"]:-moz-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control[type="search"]::-moz-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control[type="search"]:-ms-input-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
아마도 더 깨끗한 해결책 :
CSS
.form-control.glyphicon {
font-family:inherit;
}
.form-control.glyphicon::-webkit-input-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control.glyphicon:-moz-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control.glyphicon::-moz-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control.glyphicon:-ms-input-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
HTML
<input class="form-control glyphicon" type="search" placeholder=" search" />
<input class="form-control glyphicon" type="text" placeholder=" username" />
<input class="form-control glyphicon" type="password" placeholder=" password" />
사용자 정의 CSS없이 공식 부트 스트랩 3.x 버전의 클래스를 사용하여 수행 할 수 있습니다.
를 사용하여 input-group-addon
입력 태그 앞에는 내부에 input-group
다음 여기에 코드가의 glyphicons 중 하나를 사용하여
<form>
<div class="form-group">
<div class="col-xs-5">
<div class="input-group">
<span class="input-group-addon transparent"><span class="glyphicon glyphicon-user"></span></span>
<input class="form-control left-border-none" placeholder="User Name" type="text" name="username">
</div>
</div>
</div>
</form>
출력은 다음과 같습니다
이를 사용자 정의하려면 자신의 custom.css 파일에 두 줄의 사용자 정의 CSS를 추가하십시오 (필요한 경우 패딩 조정)
.transparent {
background-color: transparent !important;
box-shadow: inset 0px 1px 0 rgba(0,0,0,.075);
}
.left-border-none {
border-left:none !important;
box-shadow: inset 0px 1px 0 rgba(0,0,0,.075);
}
input-group-addon
투명한 배경을 만들고 입력 태그의 왼쪽 그라데이션을 0으로 설정하면 입력이 매끄럽게 나타납니다. 맞춤형 출력은 다음과 같습니다.
다음은 jsbin 예제입니다
이렇게하면 레이블과 겹치는 맞춤 CSS 문제, 사용 중 정렬 input-lg
및 탭 문제에 초점을 맞출 수 있습니다.
다음은 base64 URI 인코딩을 사용하여 글리프 아이콘의 이미지 표현을 CSS에 직접 임베드하여 마크 업을 단순하게 유지하는 부트 스트랩이 아닌 솔루션입니다.
input {
border:solid 1px #ddd;
}
input.search {
padding-left:20px;
background-repeat: no-repeat;
background-position-y: 1px;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADbSURBVDhP5ZI9C4MwEIb7//+BEDgICA6C4OQgBJy6dRIEB6EgCNkEJ4e3iT2oHzH9wHbpAwfyJvfkJDnhYH4kHDVKlSAigSAQoCiBKjVGXvaxFXZnxBQYkSlBICII+22K4jM63rbHSthCSdsskVX9Y6KxR5XJSSpVy6GbpbBKp6aw0BzM0ShCe1iKihMXC6EuQtMQwukzPFu3fFd4+C+/cimUNxy6WQkNnmdzL3NYPfDmLVuhZf2wZYz80qDkKX1St3CXAfVMqq4cz3hTaGEpmctxDPmB0M/fCYEbAwZYyVKYcroAAAAASUVORK5CYII=);
}
<input class="search">
Fontawesome 을 사용하는 경우 다음을 수행 할 수 있습니다.
<input type="text" style="font-family:Arial, FontAwesome" placeholder="" />
결과
전체 유니 코드 목록은 The Complete Font Awesome 4.6.3 아이콘 참조 에서 확인할 수 있습니다.
input {
border:solid 1px #ddd;
}
input.search {
padding-left:20px;
background-repeat: no-repeat;
background-position-y: 1px;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADbSURBVDhP5ZI9C4MwEIb7//+BEDgICA6C4OQgBJy6dRIEB6EgCNkEJ4e3iT2oHzH9wHbpAwfyJvfkJDnhYH4kHDVKlSAigSAQoCiBKjVGXvaxFXZnxBQYkSlBICII+22K4jM63rbHSthCSdsskVX9Y6KxR5XJSSpVy6GbpbBKp6aw0BzM0ShCe1iKihMXC6EuQtMQwukzPFu3fFd4+C+/cimUNxy6WQkNnmdzL3NYPfDmLVuhZf2wZYz80qDkKX1St3CXAfVMqq4cz3hTaGEpmctxDPmB0M/fCYEbAwZYyVKYcroAAAAASUVORK5CYII=);
}
<input class="search">
:before
CSS 의 pseudo 요소를 사용하여 글리프 콘을 배치하여 다른 방법으로이를 수행 할 수 있습니다.
이 HTML의 경우 :
<form class="form form-horizontal col-xs-12">
<div class="form-group">
<div class="col-xs-7">
<span class="usericon">
<input class="form-control" id="name" placeholder="Username" />
</span>
</div>
</div>
</form>
이 CSS를 사용하십시오 ( Bootstrap 3.x 및 Webkit 기반 브라우저 호환 가능 )
.usericon input {
padding-left:25px;
}
.usericon:before {
height: 100%;
width: 25px;
display: -webkit-box;
-webkit-box-pack: center;
-webkit-box-align: center;
position: absolute;
content: "\e008";
font-family: 'Glyphicons Halflings';
pointer-events: none;
}
@Frizi가 말했듯 pointer-events: none;
이 커서가 입력 포커스를 방해하지 않도록 추가 해야합니다. 다른 모든 CSS 규칙은 적절한 간격을 중심에두고 추가하기위한 것입니다.
결과:
사용자 아이콘을 추가 할 수 있도록, 단지 추가 
받는 placeholder
속성, 또는 당신이 그것을 원하는 목적지까지.
이 치트 시트 를 확인하실 수 있습니다 .
예:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<input type="text" class="form-control" placeholder=" placeholder..." style="font-family: 'Glyphicons Halflings', Arial">
<input type="text" class="form-control" value=" value..." style="font-family: 'Glyphicons Halflings', Arial">
<input type="submit" class="btn btn-primary" value=" submit-button" style="font-family: 'Glyphicons Halflings', Arial">
다음 코드를 사용하여 입력 글꼴을 Glyphicon 글꼴로 설정하는 것을 잊지 마십시오.
font-family: 'Glyphicons Halflings', Arial
여기서 Arial 은 입력에서 일반 텍스트의 글꼴입니다.
를 가져 와서 클래스에 form-control
추가하십시오 is-valid
. 컨트롤이 어떻게 녹색으로 바뀌는 지, 더 중요한 것은 컨트롤 오른쪽의 확인 표시 아이콘을 확인하십시오. 이것이 우리가 원하는 것입니다!
예:
.my-icon {
padding-right: calc(1.5em + .75rem);
background-image: url('https://use.fontawesome.com/releases/v5.8.2/svgs/regular/calendar-alt.svg');
background-repeat: no-repeat;
background-position: center right calc(.375em + .1875rem);
background-size: calc(.75em + .375rem) calc(.75em + .375rem);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<div class="container">
<div class="col-md-5">
<input type="text" id="date" class="form-control my-icon" placeholder="Select...">
</div>
</div>
최신 브라우저 만 필요할만큼 운이 좋으면 CSS 변환 변환을 사용해보십시오. 래퍼가 필요하지 않으며 input [type = number]에 더 많은 간격을 두어 입력 스피너를 수용하거나 핸들 왼쪽으로 이동할 수 있도록 사용자 정의 할 수 있습니다.
@import url("//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css");
.is-invalid {
height: 30px;
box-sizing: border-box;
}
.is-invalid-x {
font-size:27px;
vertical-align:middle;
color: red;
top: initial;
transform: translateX(-100%);
}
<h1>Tasty Field Validation Icons using only css transform</h1>
<label>I am just a poor boy nobody loves me</label>
<input class="is-invalid"><span class="glyphicon glyphicon-exclamation-sign is-invalid-x"></span>
기존 부트 스트랩 클래스와 약간의 사용자 정의 스타일을 사용하여이를 수행 할 수 있어야합니다.
<form>
<div class="input-prepend">
<span class="add-on">
<i class="icon-user"></i>
</span>
<input class="span2" id="prependedInput" type="text" placeholder="Username" style="background-color: #eeeeee;border-left: #eeeeee;">
</div>
편집 아이콘은 icon-user
클래스 를 통해 참조됩니다 . 이 답변은 Bootstrap 버전 2 당시 작성되었습니다. 다음 페이지에서 참조를 볼 수 있습니다. http://getbootstrap.com/2.3.2/base-css.html#images