Khắc phục sự cố CSS. HTML và CSS - tại sao bạn cần biết chúng và tại sao lại cần kiến ​​thức về PHP và MySQL, nhưng ở mức độ thấp hơn nhiều Tại sao css

  • 11.12.2021

Cascading Style Sheets (CSS) được sử dụng để làm cho một trang web trở nên hấp dẫn đối với khách truy cập. Ngoài ra, CSS style sheet đơn giản hóa rất nhiều quá trình phát triển một trang web. CSS cũng cho phép bạn thực hiện các thay đổi ở một nơi, thay vì chỉnh sửa toàn bộ trang web. Bằng cách này, bạn không cần phải truy cập mọi trang của trang web và chỉnh sửa chúng.

CSS giúp bạn tiết kiệm thời gian và năng lượng quý giá. Các biểu định kiểu xếp tầng, như tên cho thấy, xác định một kiểu cụ thể cho các phần tử của trang web dựa trên danh sách các mức độ ưu tiên, thường được gọi là "xếp tầng". Ngoài ra, nó cũng cho phép bạn quản lý các yếu tố khác nhau trên các trang web của trang web của bạn. Một biểu định kiểu CSS duy nhất có thể kiểm soát phông chữ, định dạng, kích thước văn bản, vị trí, kiểu và màu sắc của toàn bộ trang web. Mặc dù Cascading Style Sheets có thể thay đổi cách trình bày và giao diện trang web của bạn, tuy nhiên, chúng không liên quan gì đến thiết kế trang web.

CSS có thể giúp quản trị viên web theo nhiều cách. Nhờ CSS, trang web sẽ có thiết kế hấp dẫn hơn. Điều đó đang được nói, ngay cả các công cụ tìm kiếm cũng thích các trang web dựa trên CSS khi xếp hạng chúng trong chỉ mục tìm kiếm.

Tách phần trình bày trang web khỏi nội dung của nó.

Với CSS, bạn có thể kiểm soát rất nhiều giao diện trang web của mình, vì công nghệ này cho phép bạn liên kết các biểu định kiểu khác nhau với văn bản trang web của bạn. Do đó, nếu bạn cần thay đổi giao diện của bất kỳ phần tử nào trên trang web, bạn chỉ cần chỉnh sửa một tệp định kiểu CSS bên ngoài và điều này sẽ ảnh hưởng đến toàn bộ trang web. Cách tiếp cận này không chỉ cung cấp một quy trình quản lý trang web linh hoạt mà còn tiết kiệm đáng kể thời gian.

Tăng tốc độ tải trang.

Bởi vì Cascading Style Sheets là các tệp văn bản, chúng có trọng lượng nhẹ và sử dụng ít băng thông hơn, do đó làm tăng tốc độ tải trang web của bạn. Theo thống kê, một trang web sử dụng các biểu định kiểu dựa trên CSS bên ngoài tải nhanh hơn khoảng bảy lần so với một trang web tương tự không có công nghệ này. Vì các tài liệu văn bản tải rất nhanh, các trang web sẽ được hiển thị trong vòng vài giây và điều này sẽ ảnh hưởng tích cực đến trải nghiệm tổng thể của khách truy cập khi truy cập trang web của bạn.

CSS giúp bạn dễ dàng thay đổi vị trí của bất kỳ phần tử nào trên trang web. Ví dụ, một menu có thể được đặt ở bất kỳ đâu: trái, phải, trên cùng hoặc dưới cùng. Đồng thời, mục tiêu chính của việc định vị các yếu tố như vậy là để đảm bảo rằng rô bốt công cụ tìm kiếm trước hết quét nội dung chính của trang web của bạn. Để đạt được điều này, bạn cần đặt tất cả các yếu tố phụ trợ, chẳng hạn như menu, trong mã HTML sau nội dung chính.

Khả năng tương thích CSS với các trình duyệt hiện đại.

Vì hiện tại có nhiều trình duyệt khác nhau, quản trị viên web rất khó để kiểm tra hiệu suất của trang web trong tất cả các trình duyệt. Tuy nhiên, nếu bạn tuân theo một bố cục dựa trên CSS tiêu chuẩn, thì vấn đề này sẽ trở nên dễ dàng giải quyết.

Như bạn có thể thấy ở trên, công nghệ CSS ngoài việc cung cấp các công cụ để tạo các trang web hiện đại, hấp dẫn, nó còn giúp giải quyết một số vấn đề. Điều đó tự nó xác định tầm quan trọng cao của CSS.

Diễn đàn là một trong những dịch vụ lâu đời nhất trên Internet. Những nền tảng giao tiếp này là một trong những nền tảng đầu tiên xuất hiện và hầu như không thay đổi kể từ đó. Nhưng mặc dù tuổi đáng kể của họ, họ vẫn đối phó với các chức năng của họ. Ở đây mọi người giao tiếp, đặt câu hỏi và nhận câu trả lời.

CSS này là gì

CSS có thể được gọi là một ngôn ngữ chính thức để mô tả hình thức trực quan của một tài liệu. CSS hoàn toàn giống như Cascading Style Sheets mà một người Nga hiểu Trang tính kiểu xếp tầng, tức là CTS. Tất nhiên, không ai sử dụng KTS, nhưng theo thói quen thì sử dụng CSS. Ngôn ngữ CSS xuất hiện vào ngày 17 tháng 12 năm 1996.

Tại sao chúng ta cần các kiểu CSS trong một tệp riêng biệt

Để viết các kiểu trong html, bạn cần bên trong .. viết các quy tắc của bạn trong thẻ

trong đó các quy tắc được viết. Bản thân anh ấy cũng đăng ký ở

- Nếu bạn quyết định chỉ định kiểu trực tiếp nội dung bên trong , thì bạn nên sử dụng tham số style = "..."

Các quy tắc đúng cho CSS và cách nhận xét trong CSS

Ở đây, tất nhiên, bạn có thể viết một lượng lý thuyết khổng lồ, nhưng chúng tôi không có sách tham khảo ở đây. Tôi sẽ hiển thị mọi thứ bằng một ví dụ đơn giản, điều chính cần nhớ là có các bộ chọn, thuộc tính và giá trị. Bộ chọn là những gì các quy tắc sẽ áp dụng, thuộc tính là loại quy tắc mà chúng tôi sẽ sử dụng và giá trị là giá trị. (thuộc tính + giá trị = quy tắc)

Viết trông như thế này bộ chọn (thuộc tính: giá trị;), nếu bạn cần áp dụng một số bộ chọn, hãy viết chúng qua dấu phẩy nếu nhiều quy tắc thông qua dấu chấm phẩy. Luôn luôn ở cuối dấu chấm phẩy.

Để nhận xét bất kỳ văn bản nào trong CSS, bạn cần đặt văn bản trong dấu ngoặc kép như thế này /* chữ */ và tất cả 🙂

Như đã hứa, ví dụ minh họa về CSS :

P(
font-family: Verdana
nền: trắng;
màu đỏ;
}

Bộ chọn ở đây là p, có nghĩa là bất kỳ đoạn văn nào được gắn thẻ sẽ tuân theo các quy tắc này. Dù bạn viết gì ở trên, đoạn văn sẽ có màu trắng với dòng chữ Verdana màu đỏ. Ngay cả khi nền chung là màu vàng và phông chữ khác nhau.

  • hướng dẫn

Các lỗi và mẹo tôi đã viết theo kinh nghiệm của riêng mình. Nếu có sai sót như "lời khuyên tồi", thì tôi sẽ rất vui khi được nghe những lời phê bình mang tính xây dựng. Bài đăng dành cho người mới bắt đầu học HTML và CSS, nhưng cũng có thể thú vị cho các chuyên gia làm quen với tài liệu này.

1. Trình xác thực W3C

Bạn nên kiểm tra HTML và CSS của trang web thông qua dịch vụ validator.w3.org. Dịch vụ này sẽ quét mã và hiển thị các lỗi, ví dụ:
  • thẻ không được đóng;
  • các ký tự không được khuyến nghị trong các liên kết;
  • một thẻ không được khuyến nghị được sử dụng;
  • một thuộc tính bắt buộc không được chỉ định;
  • và khác.

2. Bố cục ở định dạng UTF-8

Khi sắp xếp trang, bạn cần đảm bảo rằng mã hóa tệp được đặt thành UTF-8 (không có BOM). Mỗi trình soạn thảo văn bản đặt mã hóa khác nhau.

Một tệp ở định dạng UTF-8 cho phép sử dụng các ký tự không chuẩn (ví dụ: ký tự của nhiều ngôn ngữ, ký hiệu tiền tệ và các ký tự khác).

Bạn cũng cần thông báo cho các trình duyệt biết rằng trang sẽ mở bằng mã hóa UTF-8. Điều này được thực hiện thông qua thẻ bên dưới:

3. Cùng một id cho nhiều phần tử

Giá trị của thuộc tính id trong mã HTML không được lặp lại.

4. Sprites

Một số hình ảnh nhỏ nên được kết hợp thành một tệp (tệp như vậy được gọi là ảnh ghép). Điều này sẽ làm giảm số lượng yêu cầu đến trang web và cải thiện tốc độ tải trang.

Bây giờ nó cũng phổ biến để sử dụng phông chữ có biểu tượng thay vì sprite. Những thứ kia. thay vì các chữ cái, biểu tượng bánh răng, biểu tượng cảm xúc và các biểu tượng khác được hiển thị. Một ví dụ là glyphicons được sử dụng trong Twitter Bootstrap.

Ưu điểm của phông chữ đối với sprites là bảo toàn chất lượng khi thay đổi kích thước các biểu tượng và kích thước nhỏ hơn. Nhưng nhược điểm là bạn không thể sử dụng nhiều hơn một màu trong biểu tượng.

5. Rất nhiều bộ chọn

Không nên sử dụng nhiều hơn ba bộ chọn, bởi vì nó ảnh hưởng đến hiệu suất của trang web.

/ * không được khuyến khích, được lồng nhiều * / .page .item .title a () / * có thể được rút ngắn * / .page .item a ()
Trình duyệt đọc CSS từ phải sang trái. Những thứ kia. trong đoạn mã trên, tất cả các liên kết trên trang sẽ được chọn trước tiên và sau đó những liên kết nằm bên trong phần tử .item sẽ được chọn.

6. Các kiểu trong HTML

HTML được thiết kế để hiển thị thông tin (văn bản, hình ảnh). Thiết kế nội dung (thay đổi kích thước, màu sắc, phông chữ) diễn ra trong CSS.

Lỗi trong mã

Lỗi trong mã

7. Tên lớp sai

Nhiều bộ sắp chữ, khi họ cần làm cho văn bản có màu xanh lục, hãy gắn lớp .green vào đó.

Tin nhắn văn bản


Điều này là sai, bởi vì Khi thay đổi thiết kế, nhiều màu sắc có thể thay đổi, ví dụ, văn bản của tin nhắn có thể được hiển thị bằng màu xanh lam thay vì màu xanh lá cây. Sau đó, bạn phải tìm kiếm tất cả các thẻ có lớp .green và thay thế nó bằng .blue.

Tin nhắn văn bản

Tin nhắn văn bản

8. Điểm ảnh ở giá trị phân số

Một số trình duyệt cho phép bạn chỉ định pixel trong các giá trị phân số, chẳng hạn như "1,5px". Nhưng điều này là sai, bởi vì Một pixel là một đơn vị không thể phân chia. Thay vì "1.5px", tốt hơn là sử dụng "1.5em".

P (/ * sai * / letter-spacing: 1.5px; / * right * / letter-spacing: .005em;)

9. Sử dụng các lớp thay vì id

Bạn nên chọn theo lớp thay vì id, bởi vì bộ chọn id mang nhiều trọng lượng hơn các lớp và khó xác định lại.

#modal a (color: blue;) / * không thể ghi đè màu bên dưới, bởi vì #modal có nhiều trọng số hơn các lớp * / .modal-header a (color: # 333;) / * trong trường hợp này bạn phải thêm #modal * / #modal .modal-header a (color: # 333;)
Nó cũng không được khuyến khích sử dụng! Important, as trọng lượng của nó cao hơn thuộc tính id và nó cũng sẽ khó bị ghi đè.

10. Thực đơn

Menu phải được định dạng dưới dạng danh sách.

Trang chủ Tin tức Giới thiệu công ty

  • Trang Chủ
  • Tin tức
  • Về công ty

11. Thiếu alt trên ảnh

Các thẻ phải chỉ định thuộc tính alt (có thể để trống).

12. Thẻ

Chỉ nên có một tiêu đề cho mỗi trang trên mỗi thẻ

. Về cơ bản, thẻ này chứa tiêu đề của trang.

13. Phiên âm

Tên của tất cả các yếu tố phải được viết bằng bản dịch tiếng Anh. Ngay cả khi bạn không biết một từ được đánh vần như thế nào trong tiếng Anh, có rất nhiều dịch vụ miễn phí có thể dịch. Khi có tên của các phần tử bằng cách phiên âm, nó trông không chuyên nghiệp.

/ * sai * / .product () .stranica () .zapros () / * đúng * / .product () .page () .query ()

14.Clearfix

Thật khó để viết một cách tóm tắt về clearfix, nhưng tôi sẽ chỉ ra một điểm mà theo tôi, nhiều nhà thiết kế bố cục đã mắc sai lầm.

Lớp .clearfix phải được chỉ định trong thẻ cha, không phải bên cạnh nó.

15. HTML - ngôn ngữ lập trình

Một số người mới làm quen với HTML nghĩ rằng HTML là một ngôn ngữ lập trình. Thực ra HTML không phải là một ngôn ngữ lập trình, nó có thể được so sánh với Microsoft Word. Ví dụ, để làm cho văn bản in đậm, trong Word, bạn cần nhấp vào nút và trong HTML, bạn cần viết mã. Những thứ kia. HTML chỉ đơn giản là một công cụ thêm văn bản, hình ảnh, bảng và các phần tử khác.

Chúng tôi giới thiệu bản dịch của bài báo “Tại sao CSS Grid tốt hơn Bootstrap để tạo bố cục” của Per Harald Borgen, được xuất bản trên trang ru.hexlet.io.

CSS Grid là cách mới để tạo bố cục trên web. Lần đầu tiên, một hệ thống bố cục chính thức có sẵn trực tiếp trong trình duyệt, điều này mang lại rất nhiều lợi thế.

Những lợi ích này trở nên đặc biệt rõ ràng khi bạn so sánh CSS Grid với framework phổ biến nhất, Bootstrap. Bạn không chỉ có thể tạo các bố cục mà trước đây không thể nếu không có JavaScript, mà mã của bạn sẽ trở nên dễ bảo trì và dễ hiểu hơn.

Hãy xem ba lý do hàng đầu tại sao tôi nghĩ CSS Grid vượt trội hơn so với Bootstrap.

Đánh dấu sẽ dễ dàng hơn

Thay Bootstrap bằng CSS Grid sẽ làm cho HTML sạch hơn. Mặc dù đây không phải là lợi ích quan trọng nhất nhưng có lẽ đây là lợi ích đầu tiên bạn sẽ nhận thấy.

Để rõ ràng, tôi đã tạo một bố cục trang web giả để tôi có thể so sánh mã cần thiết cho hai phiên bản. Nơi đây:

Bootstrap

Đầu tiên chúng ta hãy xem xét đánh dấu cần thiết để tạo trang web này trong Bootstrap.

Ở đây tôi muốn bạn chú ý đến những điều sau:

  1. Mỗi dòng phải có một thẻ riêng biệt
    .
  2. Tên lớp (col-xs-2) phải được sử dụng để chỉ định bố cục.
  3. Khi mẫu này trở nên phức tạp hơn, HTML cũng vậy.

Nếu đó là một trang web đáp ứng, các thẻ có xu hướng trông tệ hơn:

Lưới CSS

Bây giờ chúng ta hãy xem xét một cách để triển khai tương tự trong CSS Grid. Đây là HTML:

Tôi có thể đã sử dụng các yếu tố ngữ nghĩa, nhưng tôi quyết định gắn bó với div để làm cho sự so sánh với Bootstrap rõ ràng hơn.

Bạn có thể thấy ngay rằng việc đánh dấu này đơn giản hơn. Tên lớp xấu xí và thẻ div phụ cho mỗi dòng đã là dĩ vãng. Nó chỉ là một thùng chứa cho lưới và các vị trí bên trong nó.

Và không giống như Bootstrap, đánh dấu này sẽ không quá phức tạp vì bố cục trang ngày càng phức tạp.

Trong ví dụ Bootstrap, bạn không bắt buộc phải thêm CSS, trong CSS Grid, tất nhiên, bạn có. Cụ thể, bạn cần thêm điều này:

Đối với một số người, đây có thể là một lập luận ủng hộ Bootstrap: bạn không phải lo lắng về CSS để tạo một lưới đơn giản - bạn chỉ cần xây dựng bố cục trong HTML.

Nhưng như bạn sẽ thấy trong đoạn tiếp theo, mối quan hệ giữa đánh dấu và bố cục thực sự là một lỗ hổng khi nói đến tính linh hoạt.

Linh hoạt hơn nhiều

Giả sử bạn muốn thay đổi bố cục tùy thuộc vào kích thước màn hình. Ví dụ: nâng menu lên hàng trên cùng để xem từ thiết bị di động.

Nói cách khác, hãy thay đổi bố cục từ sau:

trên cái này:

Lưới CSS

Làm điều này với CSS Grid rất dễ dàng. Chúng tôi thêm một truy vấn phương tiện và kết hợp các khối khác nhau như chúng tôi muốn:

Có thể tạo bố cục theo cách này - mà không cần quan tâm HTML được viết như thế nào - được gọi là sự độc lập về thứ tự nguồn và đó là một chiến thắng lớn cho các nhà phát triển và nhà thiết kế.

CSS Grid cho phép bạn biến HTML thành như ý nghĩa của nó. Trong phần đánh dấu nội dung, không phải phần trực quan dành cho CSS.

Bootstrap

Nếu chúng ta muốn làm điều tương tự trong Bootstrap, chúng ta sẽ cần thay đổi HTML. Chúng tôi cần phải nâng thẻ menu lên hàng trên cùng, ngoài tiêu đề, vì menu ở hàng thứ hai đang bị bắt làm con tin.

Thực hiện điều này với một truy vấn phương tiện không phải là một nhiệm vụ tầm thường. Điều này chỉ có thể được thực hiện với HTML và CSS, và bạn sẽ phải lộn xộn với JavaScript.

Ví dụ này cho thấy một lợi ích to lớn của CSS Grid mà tôi đã trải nghiệm đầu tiên.

Không còn giới hạn 12 cột nữa

Đây không phải là vấn đề lớn nhất, nhưng nó khiến tôi bực mình nhiều lần. Vì lưới Bootstrap được chia thành 12 cột, bạn sẽ gặp vấn đề nếu muốn có bố cục năm cột. Hoặc bảy. Hoặc chín. Hoặc từ một số không phải là mười hai.

Với CSS Grid thì không như vậy. Bạn có thể tạo bố cục của riêng mình với bao nhiêu cột tùy thích. Đây là một bố cục bảy cột.

Điều này được thực hiện bằng cách đặt giá trị lặp lại (7, 1fr) cho lưới-mẫu-cột, như sau:

Có lẽ có những thủ thuật để thực hiện điều này trong Bootstrap ... Và tôi biết rằng Bootstrap 4 sử dụng Flexbox để cho phép tính linh hoạt này, nhưng nó vẫn sẽ không thoát ra khỏi phiên bản beta.

Tất nhiên, trước khi kết thúc bài viết này, chúng ta cần nói về hỗ trợ của trình duyệt. Tại thời điểm viết bài này, 75% lưu lượng truy cập web toàn cầu hỗ trợ CSS Grid.

Nhưng trước khi bạn từ bỏ hoàn toàn ý định sử dụng CSS Grid, tôi khuyên bạn nên lắng nghe những gì Morten Rand-Hendricksen nói về nó. Anh ấy lập luận rằng CSS Grid là cơ hội để suy nghĩ lại cách chúng tôi thể hiện khả năng tương thích ngược:

“CSS Grid là một mô-đun đánh dấu, nó cho phép chúng ta thay đổi đánh dấu của một tài liệu mà không can thiệp vào thứ tự của mã nguồn. Nói cách khác, CSS Grid là một công cụ hoàn toàn trực quan và nếu được sử dụng đúng cách, nó sẽ không ảnh hưởng đến các mối quan hệ bên trong của nội dung trong một tài liệu. Từ điều này dẫn đến một thực tế đơn giản nhưng đáng ngạc nhiên: việc thiếu hỗ trợ CSS Grid trong trình duyệt cũ sẽ không ảnh hưởng đến trải nghiệm của khách truy cập trang web, nó chỉ nên thay đổi nhận thức này.

Nói cách khác, một khi bạn tách nội dung khỏi hình ảnh, tất cả khách truy cập sẽ thấy nội dung, nhưng CSS Grid sẽ làm cho trải nghiệm duyệt web tốt hơn cho những người hỗ trợ nó với đánh dấu tốt hơn.

Sự kết luận

“Càng sử dụng CSS Grid, tôi càng tin rằng không có lợi ích gì khi thêm một lớp trừu tượng lên trên nó. CSS Grid là một khung đánh dấu được tích hợp ngay trong trình duyệt. ”

Tôi có html này:

Chia tay là nỗi buồn ngọt ngào!- Bill Rattle và Roll Speer

Và css này (được thêm vào cuối Site.css):

Fancify (font-size: 1.5em; font-weight: 800; font-family: Consolas, "Segoe UI", Calibri, sans-serif; font-style: italic;)

Vì vậy, tôi hy vọng câu trích dẫn ("Chia tay thật là một nỗi buồn ngọt ngào!") Được in nghiêng và có phông chữ khác với tên của câu trích dẫn (Bill Rattleandrollspeer) vì thẻ span của nó có lớp "fancify" gắn liền với nó . Lớp sẽ được nhìn thấy vì tệp mà nó xuất hiện trong tham chiếu đến tệp bố cục sử dụng tệp Site.css.

Tôi đang mắc lỗi tân binh nào bây giờ?

CẬP NHẬT

Tôi nghĩ có thể vấn đề là tôi đã thêm một lớp mới trong Site.css sau phần này trong tệp này:

/ ******************** * Kiểu di động * ******************** / @ chỉ màn hình phương tiện và (max-width: 850px) (

Nhưng mình đã chuyển nó lên trên mà nó vẫn không được và không xem được qua F12 | Kiểm tra phần tử cho nhãn tương ứng.

CẬP NHẬT 2

Đây là cách HTML xuất hiện:

Và đây là quy tắc css của tôi trong Site.css:

P span label .fancify (font-size: 1.5em; font-weight: 800; font-family: Consolas, "Segoe UI", Calibri, sans-serif; font-style: italic; display: inline;)

Nhưng nó không được công nhận. Tôi coi đây là một sự thực thi của giao thức css / html và nên được một số tổ chức trên thế giới xem xét. Một lần nữa, tôi có thể đã phạm một sai lầm ngu ngốc nào đó.