Tạo chữ hoa đầu tiên trong CSS


255

Có cách nào để tạo nhân vật đầu tiên Uppercase không trong nhãn trong CSS không.

Đây là HTML của tôi:

<a class="m_title" href="">gorr</a>
<a class="m_title" href="">trro</a>
<a class="m_title" href="">krro</a>
<a class="m_title" href="">yrro</a>
<a class="m_title" href="">gwwr</a>


2
Để chỉ định - ký tự đầu tiên và CHỈ là ký tự đầu tiên. Điều này làm cho text-transform: capitalize;không đủ khi có nhiều từ
wiktus239

Câu trả lời:


622

Có một tài sản cho rằng:

a.m_title {
    text-transform: capitalize;
}

Nếu các liên kết của bạn có thể chứa nhiều từ và bạn chỉ muốn chữ cái đầu tiên của từ đầu tiên được viết hoa, :first-letterthay vào đó hãy sử dụng một biến đổi khác (mặc dù nó không thực sự quan trọng). Lưu ý rằng để:first-letter làm việc của bạn ayếu tố cần phải được đựng khối (có thể display: block, display: inline-blockhoặc bất kỳ của một loạt các kết hợp khác của một hoặc nhiều tài sản):

a.m_title {
    display: block;
}

a.m_title:first-letter {
    text-transform: uppercase;
}

3
@alanjds: Có, nó hoạt động trong mọi phiên bản IE hỗ trợ CSS. Đó là công nghệ rất cũ.
BoltClock

3
bạn có thể muốn sử dụng dấu hai chấm, xem css-tricks.com/almanac/selector/f/first-letter
ndequeker

5
@ Voles: Chắc chắn nếu bạn không cần hỗ trợ IE8 trở lên. Không nói rằng bạn không thể sử dụng dấu hai chấm nếu bạn muốn. (Đối với những gì nó có giá trị, tại thời điểm này câu trả lời đó đã được đăng năm 2 rưỡi trước đây, chính sách cá nhân của tôi để hỗ trợ IE8 theo mặc định Hôm nay tôi không còn làm..)
BoltClock

1
Lưu ý, nếu display: blockyêu cầu (ai biết tại sao lại như vậy) làm cho điều này trở nên khó khăn, thì :first-lettercũng có tác dụng display: inline-block.
Mitya

1
@Henry Garcia De Guzman: Bởi vì nó viết hoa mọi thứ, không chỉ là chữ cái đầu tiên (của mỗi từ hoặc câu hoặc bất cứ điều gì).
BoltClock

55

Lưu ý rằng ::first-letterbộ chọn không hoạt động với các phần tử nội tuyến, vì vậy nó phải là blockhoặc inline-block, như sau:

.m_title {display:inline-block}
.m_title:first-letter {text-transform: uppercase}

1
Trong trường hợp của tôi, toàn bộ văn bản đã ở dạng chữ hoa, vì vậy tôi phải thêm biến đổi văn bản: chữ thường thành .m_title và bây giờ nó hoạt động hoàn hảo!
hjuster


15

Tôi đề nghị sử dụng

#selector {
    text-transform: capitalize;
}

hoặc là

#selector::first-letter {
    text-transform: uppercase;
}

Nhân tiện, hãy kiểm tra liên kết w3schools này: http://www.w3schools.com/cssref/pr lòng văn- transform.asp


2
Câu trả lời tốt, nhưng đó chắc chắn không phải là một liên kết đến tài liệu w3c.
Stephan

1
Xin chào, xin lưu ý: chuyển đổi văn bản 'ban đầu' không có nghĩa là 'viết hoa chữ cái đầu tiên'. Thay vào đó, nó có nghĩa là 'trở lại giá trị mặc định ban đầu cho thuộc tính này'.
Marcos Buarque

Cảm ơn, tôi đã áp dụng cả hai bản sửa lỗi được đề xuất.
Marcos Buarque

5

Làm cho nó viết thường trước:

.m_title {text-transform: lowercase}

Sau đó, làm cho nó chữ hoa đầu tiên:

.m_title:first-letter {text-transform: uppercase}

"chuyển đổi văn bản: viết hoa" hoạt động cho một từ; nhưng nếu bạn muốn sử dụng cho câu thì giải pháp này là hoàn hảo.


2
: chữ cái đầu tiên không hoạt động với inlinecác phần tử, được đặt thành display:inline-blocknếu đây là trường hợp của bạn. ( stackoverflow.com/questions/7631722/ khăn )
Fanky

1
<script type="text/javascript">
     $(document).ready(function() {
     var asdf = $('.capsf').text();

    $('.capsf').text(asdf.toLowerCase());
     });
     </script>
<div style="text-transform: capitalize;"  class="capsf">sd GJHGJ GJHgjh gh hghhjk ku</div>

nó làm việc cho tôi khái niệm .. đoạn từng chữ trong màn hình chữ cái đầu tiên
Gnana Sekar

-2

Tôi khuyên bạn nên sử dụng mã sau đây trong CSS:

    text-transform:uppercase; 

Hãy chắc chắn rằng bạn đặt nó trong lớp học của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.