2011-08-04 28 views
32

Đây là hình ảnh được đề cập đến trong trang HTML của tôi. Trình đơn văn bản nằm bên trong div được căn phải và có khoảng cách chữ cái 1,2em. Có một bộ chọn giả cho điều này không? Tôi không muốn phải nghỉ mát để định vị tương đối.Làm cách nào để loại bỏ khoảng cách chữ cái cho chữ cái cuối cùng của một phần tử trong CSS?

Tôi rất thích menu văn bản để kết thúc khi khối kết thúc.

Right text-aligned div where letter spacing applies for all characters of a line

Tôi đã đánh dấu một câu trả lời tốt nhất, nhưng tôi đã yêu cầu đánh dấu phân biệt bởi CodeBlock. Đây rồi.

<div class="sidebar"> 
     <span class="menuheader">MENU</span> 
     <ul> 
     <li><a href="#content">Content</a></li> 
     <li><a href="#attachments">Attachments</a></li> 
     <li><a href="#subpages">Sub-pages</a></li> 
     <li><a href="#newsubpage">New sub-page</a></li> 
     </a></ul> 
</div> 

.sidebar{ 
color: rgb(150,93,101); 
display: inline; 
line-height: 1.3em; 
position: absolute; 
top: 138px; 
width: 218px; 
} 

.menuheader{ 
letter-spacing: 1.1em; 
margin: -1.2em; 
text-align: right; 
} 
+0

Cần xem đánh dấu của bạn. – BoltClock

+0

Tôi đã cập nhật câu hỏi của mình với đánh dấu. – desbest

Trả lời

34

Bạn có thể đặt phần tử của bạn có lề phải -1,2em, điều này sẽ chống lại khoảng cách giữa các chữ cái.

ví dụ:

.menu-header-selector { 
    display:block; 
    letter-spacing:1.2em; 
    margin-right:-1.2em; 
    text-align:right; 
} 

Để trả lời câu hỏi của bạn về công cụ chọn giả, không có bộ chọn giả ký tự theo như tôi biết. (EDIT: Scratch rằng, có :First-Letter chọn, mà Jonas G. Drange chỉ ra).

EDIT: Bạn có thể tìm thấy một mẫu cơ bản ở đây: http://jsfiddle.net/teUxQ/

+0

Tôi đã thử giá trị ký quỹ âm của bạn và nó hoạt động! – desbest

+1

Phần tử giả của ': first-letter' không chính xác" trên mỗi ký tự "hoặc (nếu không nó sẽ được gọi là': ký tự đầu tiên'). Xem http://stackoverflow.com/questions/5649296/css-pseudo-element-to-apply-the-first-characther-of-an-element/5649347#5649347 – BoltClock

+1

kết thúc trên trang này khi muốn có văn bản -decoration: gạch chân ... trong trường hợp đó nó không hoạt động. Bất kỳ đầu mối? – Ben

1

Bạn không thể nhắm mục tiêu các ký tự cuối cùng, chỉ có những người đầu tiên (CSS3,: first-letter). Bạn có thể thêm một khoảng xung quanh chữ cái cuối cùng, nhưng điều đó có nghĩa là thêm đánh dấu vô nghĩa mà "tồi tệ" hơn việc thêm định vị vào phần tử.

CSS hoàn hảo cho hoạt động như thế này :)

+4

Um,': first- letter' đã có từ CSS1. – BoltClock

+1

Xin lỗi về điều đó! –

12

Tôi sẽ gọi đây là lỗi trình duyệt. spec cho biết đó là khoảng cách giữa các ký tự, trong khi trình duyệt của bạn (và mỏ) dường như đang thay đổi khoảng cách sau ký tự. Bạn nên gửi báo cáo lỗi.

+0

Tôi đã sử dụng Opera 11,50. Phiên bản mới nhất. Tôi thích cắt các thiết kế css tinh khiết trong Opera, vì Firefox hiển thị quá hoàn hảo, và IE9 có thể có quirks. – desbest

+0

Có. Đó là lý do tại sao bạn phải gửi báo cáo lỗi.Nếu nó đã là một phiên bản cũ, tôi đã có thể nói với bạn để cập nhật đầu tiên. – LaC

+0

Tôi không nghĩ rằng việc gửi một báo cáo lỗi sẽ là một ý tưởng tốt, vì IE/FF/WK/OP sẽ phải thực hiện tất cả điều này. Ngoài ra, nếu lỗi được sửa, nó sẽ tác động đến thiết kế của các trang web khác tiêu cực mà tôi nghĩ. – desbest

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