2013-05-14 39 views
6

Tôi đang cố gắng thêm một số biểu tượng vào menu thả xuống của bootstrap (xem phần dưới) vì bạn có thể thấy biểu tượng được thêm vào, nhưng nó đẩy người đàn ông u sang bên phải và mục menu không được căn chỉnh với các mục khác nữa.Thêm biểu tượng vào các mục trình đơn thả xuống bootstrap

Cách thích hợp để thực hiện việc này là gì?

enter image description here

js fiddle

<div class="pull-left"> 
<div class="pull-right"> 
    <div class="btn-group">     
      <a class="btn btn-mini dropdown-toggle" data-toggle="dropdown" href="#"> 
       <span>Actions</span> 
       <span class="caret"></span> 
      </a> 
      <ul class="dropdown-menu"> 
       <li><a href="#"><i class="icon-ok"></i>Item 1</a></li> 
       <li><a href="#">Item 2</a></li> 
       <li><a href="#">Item 3</a></li> 
       <li class="divider"></li> 
       <li><a href="#">Item 4</a></li> 
       <li><a href="#">Item 5</a></li> 

      </ul> 
     </div> 
</div> 

+0

Tôi đã đăng câu trả lời nhưng sau khi đọc lại câu hỏi của bạn, có lẽ tôi đã không trả lời câu hỏi của bạn. Tôi không hiểu - điều gì đang được chuyển sang bên phải? Bạn đang nói về biểu tượng thả xuống? Tôi không thấy bất kỳ biểu tượng nào trên Fiddle của bạn. –

+0

Tôi đã thêm hình ảnh để hiển thị ý của tôi - cảm ơn –

+0

Tôi không thấy hộp kiểm đó trên fiddle của bạn? Tôi sẽ không làm điều đó với thẻ ''. Sử dụng hình nền như trong ví dụ của tôi và nó sẽ không định vị lại văn bản. Tôi đang di chuyển văn bản 5 pixel một cách thủ công, nhưng nếu bạn xóa 'padding-left' khỏi câu trả lời của tôi, nó sẽ không bị di chuyển chút nào ... –

Trả lời

0

này sẽ làm việc. Rất tiếc, có vẻ như bạn cần sử dụng !important trên hình nền thường tốt nhất để tránh. Lưu ý, nth-of-type không được hỗ trợ trong một số trình duyệt cũ hơn.

@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css'); 

.container { 
    margin-top: 10px; 
} 

/* First Menu Item */ 
.dropdown-menu li:nth-of-type(1) { 
    background-image: url("http://files.softicons.com/download/application-icons/32x32-free-design-icons-by-aha-soft/png/32/Color%20test.png") !important; 
    background-repeat: no-repeat; 
    background-size: 16px 16px; 
    background-position: 3px 5px; 
    padding-left: 5px; 
} 

/* Second Menu Item */ 
.dropdown-menu li:nth-of-type(2) { 
    background-image: url("http://files.softicons.com/download/application-icons/32x32-free-design-icons-by-aha-soft/png/32/Color%20test.png") !important; 
    background-repeat: no-repeat; 
    background-size: 16px 16px; 
    background-position: 3px 5px; 
    padding-left: 5px; 
} 

JS Fiddle: http://jsfiddle.net/syVk8/

EDIT: Ok, sau khi làm rõ chút nó quay ra bạn không muốn các văn bản chuyển qua tại tất cả. Dưới đây là một ví dụ tương tự không có đệm ở bên trái và một lớp được gọi là 'ok' mà bạn có thể áp dụng cho các mục menu khác nhau để thêm vào hộp kiểm (hoặc bất kỳ biểu tượng của bạn có thể):

li.ok { 
    background-image: url("http://files.softicons.com/download/application-icons/32x32-free-design-icons-by-aha-soft/png/32/Color%20test.png") !important; 
    background-repeat: no-repeat; 
    background-size: 16px 16px; 
    background-position: 3px 5px; 
} 

JS Fiddle: http://jsfiddle.net/syVk8/2/

17

đây là cách tôi đã làm điều này trong Bootstrap 3.x:

Menu with icon

Markup:

<ul class="dropdown-menu"> 
    <li><a href="#" class="icon"><span 
     class="glyphicon glyphicon-user"></span>User Profile</a></li> 
    <li><a href="#">Log Out</a></li> 
</ul> 

CSS:

.dropdown-menu a.icon { 
    position: relative; 
    padding-left: 40px; 
} 
.dropdown-menu a.icon .glyphicon { 
    top: 6px; 
    left: 10px; 
    font-size: 18px; 
} 

Điều quan trọng là glyphicons là tuyệt đối vị trí, và mặc dù họ đang "chứa" bên trong <a> trong đánh dấu, định vị là liên quan đến toàn bộ menu bằng mặc định. Bằng cách thêm lớp .icon vào mỗi thanh menu có chứa một biểu tượng, nó cho phép bạn thực hiện định vị liên quan đến neo đó, và cũng có thể thả neo văn bản sao cho biểu tượng có chỗ để hiển thị chính xác. Như bạn có thể thấy ở trên, bất kỳ mục trình đơn nào không chứa lớp .icon hoặc biểu tượng glyphicon sẽ hiển thị bình thường dưới dạng liên kết văn bản.

Nếu ý định trong câu hỏi ban đầu là luôn luôn có văn bản căn chỉnh theo chiều dọc biểu tượng hay không, chỉ cần di chuyển phần đệm sang .dropdown-menu a.

Các vấn đề liên quan