programing

입력 상자에 부트스트랩 글리폰 추가

newnotes 2023. 9. 7. 22:00
반응형

입력 상자에 부트스트랩 글리폰 추가

텍스트 유형 입력란에 글리폰을 추가하려면 어떻게 해야 합니까?예를 들어, 다음과 같은 사용자 이름 입력에 'icon-user'를 입력하고 싶습니다.

enter image description here

부트스트랩 미포함:

잠시 후에 부트스트랩을 시작할 예정이지만, 이 작업을 직접 수행하기 위한 기본 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; }

플렁커의 데모

css screenshot

참고: 글리폰을 사용하는 경우를 가정하지만 글꼴이 멋진 경우에도 마찬가지로 잘 작동합니다.
우만다면의a다e면tr으로 교체하면 됩니다..glyphicon와 함께.fa


부트스트랩 사용:

버퍼가 지적한 바와 같이 이 작업은 옵션 아이콘함께 유효성 검사 상태를 사용하여 부트스트랩 내에서 기본적으로 수행할 수 있습니다.이것은 다음을 제공함으로써 수행됩니다..form-group를fes를의tf의 부류를.has-feedback그의콘fesn고de그e의 아이콘..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>

장점:

  • 다양한 폼 유형(Basic, Horizontal, Inline) 지원 포함
  • 다양한 컨트롤 크기(기본값, 소형, 대형) 지원 포함

단점:

  • 왼쪽 정렬 아이콘에 대한 지원이 포함되어 있지 않음

단점을 극복하기 위해 저는 왼쪽 정렬 아이콘을 지원하기 위한 변경 사항과 풀-요청을 결합했습니다.비교적 큰 폭의 변화이기 때문에 향후 릴리스로 미뤄졌습니다. 하지만 현재 이러한 기능이 필요하다면 간단한 구현 가이드를 소개합니다.

이러한 양식 변경 사항을 CSS에 포함시키기만 하면 됩니다(아래쪽 숨겨진 스택 스니펫을 통해 인라인 처리 가능).
*LESS: 또는 LESS를 통해 구축하는 경우, LESS의 형태 변경 사항이 있습니다.

그럼 수업을 포함시키기만 하면 됩니다..has-feedback-left수업을 받는 어떤 그룹이든지.has-feedback아이콘을 왼쪽 정렬합니다.

폼 종류, 컨트롤 크기, 아이콘 세트, 레이블 가시성 등 다양한 HTML 구성이 가능하기 때문에 각 순열별로 정확한 HTML 세트를 보여주는 테스트 페이지를 라이브 데모와 함께 만들었습니다.

여기 플렁커의 데모가 있습니다.

feedback screenshot

추신: 프리지가 다음과 같이 제안한 것은pointer-events: none;부트스트랩에 추가되었습니다.

찾으시는 물건을 찾으셨습니까?다음과 같은 유사한 질문을 시도해 보십시오.

왼쪽 정렬 피드백 아이콘용 CSS 추가

.has-feedback .form-control {
  padding-right: 34px;
}
.has-feedback .form-control.input-sm,
.has-feedback.form-group-sm .form-control {
  padding-right: 30px;
}
.has-feedback .form-control.input-lg,
.has-feedback.form-group-lg .form-control {
  padding-right: 46px;
}
.has-feedback-left .form-control {
  padding-right: 12px;
  padding-left: 34px;
}
.has-feedback-left .form-control.input-sm,
.has-feedback-left.form-group-sm .form-control {
  padding-left: 30px;
}
.has-feedback-left .form-control.input-lg,
.has-feedback-left.form-group-lg .form-control {
  padding-left: 46px;
}
.has-feedback-left .form-control-feedback {
  left: 0;
}
.form-control-feedback {
  line-height: 34px !important;
}
.input-sm + .form-control-feedback,
.form-horizontal .form-group-sm .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px !important;
}
.input-lg + .form-control-feedback,
.form-horizontal .form-group-lg .form-control-feedback {
  width: 46px;
  height: 46px;
  line-height: 46px !important;
}
.has-feedback label.sr-only ~ .form-control-feedback,
.has-feedback label.sr-only ~ div .form-control-feedback {
  top: 0;
}
@media (min-width: 768px) {
  .form-inline .inline-feedback {
    position: relative;
    display: inline-block;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .has-feedback-left .form-control-feedback {
  left: 15px;
}

공식적인 방법.사용자 지정 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/yajf3b7q

이 데모는 부트스트랩 문서의 예를 기반으로 합니다.여기 http://getbootstrap.com/css/ #forms-control-relation에서 "옵션 아이콘 포함"으로 스크롤 다운합니다.

enter image description here

여기 CSS 전용 대안이 있습니다.파이어폭스(Firefox)와 비슷한 효과를 얻기 위해 검색 필드에 설정했습니다.

여기 바이올린이 있습니다.

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 없이 공식 부트스트랩 3.x 버전의 클래스를 사용하여 수행할 수 있습니다.

사용하다input-group-addon태그 에,부,부 input-group 글리폰을합니다. 는기다을다기면e는nsyfe,hee .

<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>

여기 출력이 있습니다.

enter image description here

사용자 지정하려면 custom.css 파일에 custom 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으로 만드는 것은 매끄러운 외관을 가질 것입니다. 출력형다입니다 입니다.

enter image description here

여기 jsbin 예가 있습니다.

과 되는 CSS , 할 를 를 할 를 를 input-lg탭 이슈에 집중합니다.

기본 부트스트랩 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>

그리고 이것은 이렇게 보입니다.

enter image description here

Fontawesome을 사용하는 경우 다음 작업을 수행할 수 있습니다.

<input type="text" style="font-family:Arial, FontAwesome"  placeholder="&#xf007;" />

결과

enter image description here

유니코드 전체 목록은 The complete Font Awesome 4.6.3 아이콘 참조에서 확인할 수 있습니다.

이 '치트'는 글리폰 클래스가 입력 컨트롤의 글꼴을 변경하는 부작용과 함께 작동합니다.

피들

<input class="form-control glyphicon" type="search" placeholder="&#57347;"/>

부작용을 제거하고 싶다면 "글리피콘" 클래스를 제거하고 다음 CSS를 추가할 수 있습니다(자리 표시자 유사 요소를 스타일링하는 더 나은 방법이 있을 수 있으며 크롬에서만 테스트했습니다).

피들

.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="&#57347; search" />
<input class="form-control glyphicon" type="text"  placeholder="&#57352; username" />
<input class="form-control glyphicon" type="password"  placeholder="&#57395; password" />

여기 base64 URI 인코딩을 사용하여 glyphicon의 이미지 표현을 CSS에 직접 내장함으로써 마크업을 단순하게 유지하는 non-bootstrap 솔루션이 있습니다.

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">

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">

CSS에 의사 요소를 이용한 글리폰을 배치하는 다른 방법이 있습니다.

Working demo in jsFiddle

For this 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>

Use this CSS (Bootstrap 3.x and Webkit-based browsers compatible)

.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 규칙은 중심을 잡고 적절한 간격을 추가하기 위한 것입니다.

The result:

screenshot

You can use its Unicode HTML

따라서 사용자 아이콘을 추가하려면 추가하기만 하면 됩니다.&#xe008;에게placeholder속성, 또는 원하는 곳으로 이동할 수 있습니다.

You may want to check this cheat sheet.

Example:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<input type="text" class="form-control" placeholder="&#xe008; placeholder..." style="font-family: 'Glyphicons Halflings', Arial">
<input type="text" class="form-control" value="&#xe008; value..." style="font-family: 'Glyphicons Halflings', Arial">
<input type="submit" class="btn btn-primary" value="&#xe008; submit-button" style="font-family: 'Glyphicons Halflings', Arial">

다음 코드를 사용하여 입력의 글꼴을 글리폰 글꼴로 설정하는 것을 잊지 마십시오.font-family: 'Glyphicons Halflings', Arial, 여기서 Arial은 입력에 있는 일반 텍스트의 글꼴입니다.

Tested with Bootstrap 4.

가져가세요form-control, 덧붙이기is-valid동급의컨트롤이 녹색으로 변하는 방식을 주목하십시오. 하지만 더 중요한 것은 컨트롤 오른쪽에 있는 체크 표시 아이콘을 주목하십시오.이게 우리가 원하는 겁니다!

Example:

.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>

I also have one decision for this case with Bootstrap 3.3.5:

<div class="col-sm-5">
    <label for="date">
       <input type="date" placeholder="Date" id="date" class="form-control">         
    </label>
    <i class="glyphicon glyphicon-calendar col-sm-pull-2"></i>
</div>

On input I have something like this: enter image description here

Here's how it works in pure Bootstrap 5:

<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>iconbutton</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" rel="stylesheet">
</head>

<body>

<div class="d-flex flex-row align-items-center m-4 border rounded">
    <i class="fa-solid fa-search mx-2"></i>
    <input type="text" class="form-control border-0" placeholder="Search">
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js"></script>
</body>

</html>

포커스에 표시되는 테두리를 제거하려면 다음을 추가합니다.shadow-0입력으로

If you are fortunate enough to only need modern browsers: try css transform translate. This requires no wrappers, and can be customized so that you can allow more spacing for input[type=number] to accomodate the input spinner, or move it to the left of the handle.

    @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>

http://codepen.io/anon/pen/RPRmNq?editors=110

You should be able to do this with existing bootstrap classes and a little custom styling.

<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>         

Edit 아이콘은 를 통해 참조됩니다.icon-user수업. 이 대답은 부트스트랩 버전 2때 작성된 것입니다.참고문헌은 다음 페이지 http://getbootstrap.com/2.3.2/base-css.html#images 에서 확인할 수 있습니다.

ReferenceURL : https://stackoverflow.com/questions/18838964/add-bootstrap-glyphicon-to-input-box

반응형