Các thuộc tính CSS cho hiển thị mã và trích dẫn

Các thuộc tính CSS cho hiển thị mã và trích dẫn

Bài viết này giải thích các thuộc tính CSS liên quan đến hiển thị mã và trích dẫn.

Bạn có thể tìm hiểu về các thuộc tính CSS liên quan đến hiển thị mã và trích dẫn, chẳng hạn như quotesuser-select, bao gồm cả các trường hợp sử dụng và cách viết chúng.

YouTube Video

HTML để Xem trước

css-code-quotation.html
  1<!DOCTYPE html>
  2<html lang="en">
  3<head>
  4    <meta charset="UTF-8">
  5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6    <title>CSS Properties Example</title>
  7    <link rel="stylesheet" href="css-base.css">
  8    <link rel="stylesheet" href="css-code-quotation.css">
  9</head>
 10<body>
 11    <!-- Header -->
 12    <header>
 13        <h1>CSS Properties For Code Display And Quotations</h1>
 14    </header>
 15
 16    <!-- Main content -->
 17    <main>
 18        <header>
 19            <h2>Code Display And Quotations Related Properties</h2>
 20        </header>
 21        <article>
 22            <h3>white-space</h3>
 23            <section>
 24                <header><h4>white-space: normal</h4></header>
 25                <section class="sample-view">
 26                    <p class="white-space-normal">This is   an example     with    multiple spaces.   The spaces will be collapsed.</p>
 27                </section>
 28                <header><h4>white-space: nowrap</h4></header>
 29                <section class="sample-view">
 30                    <p class="white-space-nowrap">This is an example with no line breaks. The text will not wrap.</p>
 31                </section>
 32                <header><h4>white-space: pre</h4></header>
 33                <section class="sample-view">
 34<p class="white-space-pre">This    is     an
 35    example     with multiple
 36    spaces    and
 37    line breaks.</p>
 38                </section>
 39                <header><h4>white-space: pre-wrap</h4></header>
 40                <section class="sample-view">
 41<p class="white-space-pre-wrap">This    is     an
 42    example     with multiple
 43    spaces    and
 44    line breaks. The text will wrap when it reaches the edge.</p>
 45                </section>
 46            </section>
 47        </article>
 48        <article>
 49            <h3>overflow-wrap</h3>
 50            <section>
 51                <header><h4>overflow-wrap: normal</h4></header>
 52                <section class="sample-view">
 53                    <section class="overflow-wrap-example">
 54                        <p class="overflow-wrap-normal">Thisisaverylongwordthatwillnotbreakwithword-breaknormal.</p>
 55                    </section>
 56                </section>
 57                <header><h4>overflow-wrap: break-word</h4></header>
 58                <section class="sample-view">
 59                    <section class="overflow-wrap-example">
 60                        <p class="overflow-wrap-break-word">Thisisaverylongwordthatwillnotbreakwithword-breaknormal.</p>
 61                    </section>
 62                </section>
 63            </section>
 64        </article>
 65        <article>
 66            <h3>quotes</h3>
 67            <section>
 68                <header><h4>quotes: "(" ")"</h4></header>
 69                <section class="sample-view">
 70                    <p>Here's an example of a quote: <q>CSS makes the web beautiful.</q></p>
 71                </section>
 72                <header><h4>quotes: "(" ")" "[" "]"</h4></header>
 73                <section class="sample-view">
 74                    <p>Here's a nested quote: <q>He said, <q>CSS is powerful.</q></q></p>
 75                </section>
 76            </section>
 77        </article>
 78        <article>
 79            <h3>user-select</h3>
 80            <section>
 81                <header><h4>user-select: auto</h4></header>
 82                <section class="sample-view">
 83                    <p class="select-auto">This text is selectable.</p>
 84                </section>
 85                <header><h4>user-select: none</h4></header>
 86                <section class="sample-view">
 87                    <p class="select-none">This text cannot be selected.</p>
 88                </section>
 89                <header><h4>user-select: all</h4></header>
 90                <section class="sample-view">
 91                    <p class="select-all">All text will be selected at once.</p>
 92                </section>
 93            </section>
 94        </article>
 95        <article>
 96            <h3>tab-size</h3>
 97            <section>
 98                <header><h4>tab-size: initial</h4></header>
 99                <section class="sample-view">
100<pre>
101function example() {
102	console.log("Initial Tab size is 8");
103}
104</pre>
105            </section>
106            <section>
107                <header><h4>tab-size: 2</h4></header>
108                <section class="sample-view">
109<pre class="tab-size-2">
110function example() {
111	console.log("Tab size is set to 2");
112}
113</pre>
114            </section>
115            <header><h4>tab-size: 4</h4></header>
116            <section class="sample-view">
117<pre class="tab-size-4">
118function example() {
119	console.log("Tab size is set to 4");
120}
121</pre>
122            </section>
123            <header><h4>tab-size: 20px</h4></header>
124            <section class="sample-view">
125<pre class="tab-size-20px">
126function example() {
127	console.log("Tab size is set to 20px");
128}
129</pre>
130                </section>
131            </section>
132        </article>
133        <article>
134            <h3>text-indent</h3>
135            <section>
136                <header><h4>text-indent: 0</h4></header>
137                <section class="sample-view">
138                    <p class="text-indent-0">This text has no indentation. The first line starts flush with the left margin.</p>
139                </section>
140                <header><h4>text-indent: 20px</h4></header>
141                <section class="sample-view">
142                    <p class="text-indent-20px">This paragraph has a 20px indentation on the first line.</p>
143                </section>
144                <header><h4>text-indent: -10px</h4></header>
145                <section class="sample-view">
146                    <p class="text-indent--10px">This paragraph has a negative indentation, pulling the first line to the left.</p>
147                </section>
148                <header><h4>text-indent: 10%</h4></header>
149                <section class="sample-view">
150                    <p class="text-indent-10percent">This paragraph has a first-line indentation of 10% of the containing block's width.</p>
151                </section>
152                <header><h4>text-indent: -20px; margin-left:40px;</h4></header>
153                <section class="sample-view">
154                    <p class="text-indent-with-margin">This is an example paragraph using a hanging indent. The second and subsequent lines are indented, while the first line is outdented.</p>
155                </section>
156            </section>
157        </article>
158
159    </main>
160</body>
161</html>

Các thuộc tính CSS cho hiển thị mã và trích dẫn

Thuộc tính white-space

 1.white-space-normal {
 2    white-space: normal;
 3    border: 1px solid black;
 4    padding: 10px;
 5    width: 300px;
 6}
 7
 8.white-space-nowrap {
 9    white-space: nowrap;
10    border: 1px solid black;
11    padding: 10px;
12    width: 300px;
13}
14
15.white-space-pre {
16    white-space: pre;
17    border: 1px solid black;
18    padding: 10px;
19    width: 300px;
20}
21
22.white-space-pre-wrap {
23    white-space: pre-wrap;
24    border: 1px solid black;
25    padding: 10px;
26    width: 300px;
27}

Thuộc tính white-space là một thuộc tính CSS dùng để chỉ định cách xử lý khoảng trắng và ngắt dòng trong một phần tử. Theo mặc định, HTML coi nhiều khoảng trắng là một khoảng trắng duy nhất, nhưng thuộc tính white-space cho phép bạn thay đổi hành vi này.

Các giá trị chính của white-space

  • normal là giá trị mặc định, trong đó nhiều khoảng trắng được thu gọn thành một và các dòng tự động ngắt.
  • nowrap thu gọn các khoảng trắng thành một nhưng ngăn chặn việc ngắt dòng. Nội dung được hiển thị trên một dòng duy nhất.
  • pre giữ nguyên khoảng trắng và ngắt dòng như ban đầu. Không xảy ra ngắt dòng.
  • pre-wrap giữ nguyên khoảng trắng và ngắt dòng đồng thời cho phép ngắt dòng.
  • pre-line thu gọn các khoảng trắng nhưng giữ nguyên việc ngắt dòng, và cho phép ngắt dòng.
  • break-spaces giữ nguyên khoảng trắng và ngắt dòng, trong khi cho phép ngắt dòng tại các từ dài hoặc khoảng trắng.

Thuộc tính overflow-wrap

 1.overflow-wrap-example {
 2  width: 200px;
 3  border: 1px solid #000;
 4}
 5
 6.overflow-wrap-normal {
 7  overflow-wrap: normal;
 8}
 9
10.overflow-wrap-break-word {
11  overflow-wrap: break-word;
12}

Thuộc tính overflow-wrap, trước đây được gọi là word-wrap, xác định cách xử lý các từ khi chúng vượt quá chiều rộng của phần tử chứa. Bằng cách sử dụng thuộc tính này, bạn có thể ngắt dòng các từ một cách hợp lý để ngăn văn bản bị tràn ra ngoài và làm hỏng bố cục.

Trong ví dụ này, với giá trị normal, các từ dài có thể tràn ra ngoài phần tử chứa và gây cuộn ngang, nhưng break-word buộc các từ dài phải được ngắt dòng.

Các giá trị của thuộc tính

overflow-wrap chủ yếu có hai giá trị:.

  • normal

    normal là giá trị mặc định, nơi trình duyệt tuân theo các quy tắc ngắt dòng tiêu chuẩn. Thông thường, các từ chỉ được ngắt dòng tại các điểm có thể tách biệt, chẳng hạn như khoảng trắng hoặc dấu gạch nối. Nếu một từ quá dài, nó có thể vượt quá chiều rộng của phần tử chứa và làm hỏng bố cục.

  • break-word break-word buộc một dòng phải ngắt nếu cần thiết, đưa văn bản sang dòng tiếp theo bất kể độ dài của từ. Điều này giúp ngăn chặn bố cục của container bị phá vỡ do từ quá dài.

    Khi break-word được chỉ định, các từ sẽ được ngắt dòng ngay cả ở những nơi không có khoảng trắng hoặc gạch ngang để vừa với chiều rộng màn hình. Điều này đặc biệt hữu ích cho URL hoặc những từ rất dài.

Sự khác biệt giữa overflow-wrap và các thuộc tính khác

Các thuộc tính tương tự như overflow-wrap bao gồm word-breakwhite-space.

Khác biệt so với word-break

word-break xác định cách xử lý toàn bộ từ, trong khi overflow-wrap chỉ kích hoạt việc ngắt dòng khi một từ vượt quá chiều rộng của container. Ví dụ, word-break: break-all; ngắt từ tại bất kỳ vị trí nào, ngay cả khi chúng không dài, trong khi overflow-wrap chỉ ngắt dòng khi các từ vượt quá giới hạn container.

Khác biệt so với white-space

Thuộc tính white-space kiểm soát cách xử lý các ngắt dòng và khoảng trắng trong toàn bộ văn bản. Không giống như overflow-wrap, white-space xác định liệu các ngắt dòng và khoảng trắng có được giữ lại hay không nhưng không ảnh hưởng trực tiếp đến việc ngắt từ.

Ví dụ, white-space: nowrap; đảm bảo rằng toàn bộ văn bản nằm trên một dòng duy nhất mà không bị ngắt dòng. Mặt khác, overflow-wrap kiểm soát việc ngắt dòng văn bản.

Các trường hợp sử dụng thực tế

overflow-wrap đặc biệt hữu ích trong các tình huống sau:.

  1. Hiển thị URL: Ngăn chặn các vấn đề về bố cục khi hiển thị các URL dài.
  2. Thuật ngữ kỹ thuật: Xử lý các trường hợp từ tiếng Anh liên tục hoặc thuật ngữ kỹ thuật vượt quá chiều rộng của container.
  3. Thiết kế đáp ứng: Đảm bảo rằng văn bản dài không làm phá vỡ bố cục ngay cả trên các màn hình nhỏ.

Thuộc tính quotes

1q {
2    quotes: "(" ")" "[" "]";
3}

Thuộc tính quotes được sử dụng để tùy chỉnh dấu ngoặc kép. Thông thường, dấu ngoặc kép được tự động chèn khi gói nội dung của các phần tử <blockquote> hoặc <q>, nhưng bằng cách sử dụng thuộc tính quotes, bạn có thể chỉ định dấu ngoặc kép tùy chỉnh.

Trong ví dụ này, dấu ngoặc đơn ((, )) được sử dụng làm dấu ngoặc kép bên ngoài. Ngoài ra, dấu ngoặc kép lồng nhau được biểu thị bằng dấu ngoặc vuông ([, ]).

Cú pháp

1element {
2    quotes: [opening-quote closing-quote] [, opening-quote closing-quote] ...;
3}

Thuộc tính quotes có thể được chỉ định với các giá trị như sau:.

  • none: Không hiển thị dấu ngoặc kép.
  • Một chuỗi ngoặc kép: Chỉ định dấu mở và đóng ngoặc kép. Bộ đầu tiên biểu thị dấu ngoặc kép bên ngoài, trong khi các bộ tiếp theo là dành cho các dấu ngoặc lồng nhau.

Các điểm chính của quotes

Thuộc tính quotes là một thuộc tính hữu ích để tùy chỉnh dấu ngoặc kép được sử dụng trong trích dẫn văn bản. Bằng cách thiết lập các dấu ngoặc kép phù hợp với thiết kế và ngôn ngữ, bạn có thể đạt được một trình bày trang tinh tế hơn. Việc sử dụng thuộc tính quotes mang lại những lợi ích như sau:.

  • Tùy chỉnh dấu ngoặc kép: Bạn có thể thay đổi hình dạng mặc định của dấu ngoặc kép hoặc đặt dấu ngoặc kép phù hợp với một thiết kế cụ thể.
  • Hỗ trợ dấu ngoặc kép lồng nhau: Bạn có thể áp dụng các tập dấu ngoặc kép khác nhau cho các trích dẫn lồng nhau.
  • Có thể tùy chỉnh theo quốc gia và ngôn ngữ: Dễ dàng áp dụng các kiểu dấu ngoặc kép khác nhau tùy thuộc vào ngôn ngữ hoặc quốc gia, điều này hữu ích cho các trang web quốc tế.

Thuộc tính user-select

 1.select-auto {
 2    user-select: auto;
 3}
 4
 5.select-none {
 6    user-select: none;
 7}
 8
 9.select-all {
10    user-select: all;
11}
  • Thuộc tính user-select là một thuộc tính CSS được sử dụng để kiểm soát việc người dùng có thể chọn văn bản hay không. Bằng cách sử dụng thuộc tính này, bạn có thể ngăn văn bản bị sao chép trong các phần tử cụ thể hoặc trên toàn bộ trang, hoặc ngược lại làm cho nó có thể chọn được. Nếu bạn chỉ định all cho thuộc tính user-select, toàn bộ phần tử sẽ được chọn cùng một lúc. Ví dụ, khi người dùng nhấp vào trường văn bản hoặc đoạn văn, toàn bộ phần tử sẽ được chọn cùng một lúc.

  • Nó cũng có thể được sử dụng để chọn toàn bộ mã nguồn.

  • Trong ví dụ này, văn bản của đoạn đầu tiên có thể được chọn, nhưng văn bản của đoạn thứ hai thì không. Trong lớp select-all, thuộc tính user-select được đặt là all, cho phép toàn bộ phần tử được chọn cùng một lúc.

Cú pháp

1element {
2    user-select: auto | none | text | all | contain;
3}

Thuộc tính user-select có thể được chỉ định với các giá trị sau:.

  • auto: Sử dụng hành vi mặc định của trình duyệt. Việc chọn văn bản được cho phép trên hầu hết các phần tử, nhưng có thể bị hạn chế trên một số phần tử tương tác như nút và liên kết.
  • none: Việc chọn văn bản hoàn toàn bị vô hiệu hóa. Người dùng sẽ không thể chọn văn bản trong phần tử đó.
  • text: Chỉ cho phép chọn văn bản bên trong phần tử.
  • all: Toàn bộ phần tử được chọn cùng một lúc. Thay vì chọn từng phần, toàn bộ phần tử sẽ được chọn như một khối thống nhất.
  • contain: Chỉ được hỗ trợ bởi một số trình duyệt. Chỉ cho phép phần tử tại vị trí được nhấp chuột được chọn.

Các trình duyệt được hỗ trợ

Thuộc tính user-select được hỗ trợ bởi hầu hết các trình duyệt hiện đại. Tuy nhiên, một số trình duyệt có thể yêu cầu tiền tố nhà cung cấp như -webkit-user-select.

  • Chrome: Được hỗ trợ
  • Firefox: Được hỗ trợ
  • Safari: Được hỗ trợ (yêu cầu tiền tố -webkit-).
  • Edge: Được hỗ trợ
  • Internet Explorer: Không được hỗ trợ

Các trường hợp sử dụng chính

Thuộc tính user-select mang lại những lợi ích sau:.

  • Các phần tử giao diện: Tắt lựa chọn văn bản để tránh gây cản trở cho các thao tác nhấp chuột hoặc kéo thả.
  • Ngăn sao chép văn bản: Ngăn lựa chọn và sao chép văn bản trên một số phần tử nhất định.
  • Các biểu mẫu và phần tử tương tác: Áp dụng cho các phần tử tương tác mà không cần lựa chọn văn bản để cải thiện trải nghiệm người dùng.

Tóm tắt

Thuộc tính user-select là một thuộc tính CSS hữu ích, cho phép kiểm soát linh hoạt việc lựa chọn văn bản trên trang web. Thuộc tính này có thể ngăn người dùng vô tình chọn văn bản không cần thiết hoặc cho phép họ chọn tất cả cùng lúc, đáp ứng các tương tác khác nhau.

Thuộc tính tab-size

 1.tab-size-2 {
 2    tab-size: 2;
 3}
 4
 5.tab-size-4 {
 6    tab-size: 4;
 7}
 8
 9.tab-size-20px {
10    tab-size: 20px;
11}
  • Thuộc tính tab-size được sử dụng để tùy chỉnh khoảng cách của ký tự tab. Theo mặc định, chiều rộng của tab thường được đặt là 8 khoảng trống, nhưng bạn có thể điều chỉnh nó thành bất kỳ giá trị nào bằng thuộc tính tab-size.

Cú pháp

1element {
2    tab-size: length | number;
3}

Thuộc tính tab-size có thể chấp nhận các loại giá trị sau.

  • number: Xác định chiều rộng của ký tự tab tính theo số lượng ký tự. Bạn có thể chỉ định số nguyên hoặc số thập phân.
  • length: Xác định chiều rộng của ký tự tab bằng cách sử dụng các đơn vị chiều dài (ví dụ: px, em).

Ghi chú

  • Thuộc tính tab-size thường được sử dụng với các phông chữ monospace. Khi sử dụng với các phông chữ tỷ lệ, chiều rộng tab có thể trở nên không đồng đều.

  • Khi chỉ định số lượng ký tự, hãy lưu ý đến việc thay đổi kích thước trên các thiết bị khác nhau.

Tóm tắt

Sử dụng thuộc tính tab-size tăng tính linh hoạt khi hiển thị mã hoặc các ký tự tab. Là một nhà phát triển, việc thiết lập chiều rộng tab đúng cách đảm bảo khả năng đọc mã và tính nhất quán trong thiết kế.

Thuộc tính text-indent

 1p.text-indent-0 {
 2    text-indent: 0;
 3}
 4
 5p.text-indent-20px {
 6    text-indent: 20px;
 7}
 8
 9p.text-indent--10px {
10    text-indent: -10px;
11}
12
13p.text-indent-10percent {
14    text-indent: 10%;
15}
16
17p.text-indent-with-margin {
18    text-indent: -20px;
19    margin-left: 20px;
20}
  • Thuộc tính text-indent được sử dụng để thụt lề dòng đầu tiên của văn bản trong một phần tử khối theo một khoảng cách nhất định. Thuộc tính này cho phép bạn định kiểu chỉ cho dòng đầu tiên của một đoạn văn.

Cú pháp

1element {
2    text-indent: length | percentage;
3}

Thuộc tính text-indent có thể chấp nhận các loại giá trị sau.

  • length: Xác định khoảng cách thụt lề bằng các đơn vị chiều dài (ví dụ: px, em).
  • percentage: Xác định khoảng cách thụt lề dưới dạng phần trăm dựa trên chiều rộng của phần tử chứa.

Ghi chú

  • text-indent chỉ áp dụng cho các phần tử khối. Nó không có tác dụng đối với các phần tử nội tuyến.

Tóm tắt

Thuộc tính text-indent là một công cụ đơn giản nhưng mạnh mẽ để thiết kế văn bản dễ đọc. Bằng cách nắm vững các kiến thức cơ bản và hiểu các trường hợp sử dụng nâng cao cùng các lưu ý, bạn có thể tạo kiểu hiệu quả hơn.

Bạn có thể làm theo bài viết trên bằng cách sử dụng Visual Studio Code trên kênh YouTube của chúng tôi. Vui lòng ghé thăm kênh YouTube.

YouTube Video