Liên kết mù chữ php. Thuộc tính rel=" " và giá trị biểu định kiểu của nó

Bài học số 8
Chúng tôi triển khai mã CSS bằng thẻ

Hãy xem cách thứ ba để nhúng mã CSS vào tài liệu HTML: Nhúng bằng thẻ

Vì vậy, chúng tôi đã biết rằng bằng cách sử dụng thẻ, bạn có thể thay đổi giao diện của thẻ trên một trang bằng cách sử dụng thuộc tính style="" chung, bạn có thể thay đổi giao diện của một thẻ cụ thể.

Nhưng điều gì sẽ xảy ra nếu bạn cần thay đổi giao diện của thẻ trên tất cả các trang của trang web cùng một lúc? Để làm điều này, chúng ta cần một thẻ; nó cần được đặt ở đầu mỗi tài liệu HTML. Thẻ phải liên kết đến , vì thẻ này có thuộc tính href=" ".

Tạo thư mục Trang web của tôi trên máy tính để bàn của bạn, tạo ba tệp HTML trong thư mục:
chỉ mục.html
polyarnyi-volk.html
polyarnaya-sova.html
và một tệp CSS:
phong cách.css

Trong tệp HTML, đặt mã HTML sau:
chỉ mục.html

Trang về báo tuyết Báo tuyết

Báo tuyết (irbis, ak beo) là một loài động vật có vú săn mồi lớn thuộc họ mèo. Nó sống ở vùng núi Afghanistan, Miến Điện, Bhutan, Ấn Độ, Kazakhstan, Kyrgyzstan, Trung Quốc, Mông Cổ, Nepal, Pakistan, Nga, Tajikistan và Uzbekistan. Báo tuyết nổi bật bởi thân hình gầy, dài và linh hoạt, chân tương đối ngắn, đầu nhỏ và đuôi rất dài. Chiều dài của báo tuyết bao gồm cả đuôi là 200-230 cm, nặng tới 55 kg. Màu lông nhạt, xám khói với những đốm đen hình vòng hoặc đặc.

Báo tuyết chủ yếu săn dê núi và cừu; chế độ ăn của nó cũng bao gồm lợn rừng, gà lôi và thậm chí cả chuột túi má. Do không thể tiếp cận được môi trường sống của loài này, báo tuyết vẫn chưa được nghiên cứu kỹ lưỡng. Tuy nhiên, theo ước tính sơ bộ, số lượng của chúng dao động khoảng 10 nghìn cá thể. Kể từ năm 2013, việc săn báo tuyết bị cấm ở khắp mọi nơi.

Báo tuyết Sói Bắc Cực Cú Bắc Cực

polyarnyi-volk.html

Trang về sói Bắc Cực Sói Bắc Cực

Sói Bắc Cực là một phân loài của sói. Nó sống ở Bắc Cực và vùng lãnh nguyên, ở những khu vực rộng lớn của khu vực phía bắc, nơi chìm trong bóng tối suốt 5 tháng trong năm. Để tồn tại, con sói đã thích nghi để ăn hầu hết mọi loại thức ăn mà nó gặp.

Sói vùng cực đã thích nghi tốt với cuộc sống ở Bắc Cực: chúng có thể sống nhiều năm ở nhiệt độ dưới 0, đi nhiều tháng mà không nhìn thấy ánh sáng mặt trời và đi nhiều tuần mà không cần thức ăn. Chiều dài của sói là 100-150 cm, chiều cao đến vai có thể đạt tới 100 cm và trọng lượng của con đực vượt quá 100 kg. Tuổi thọ của sói vùng cực là khoảng 7 năm. Chế độ ăn uống của nó bao gồm: lemings, thỏ rừng, bò xạ hương, hươu và chim.

Báo tuyết Sói Bắc Cực Cú Bắc Cực

polyarnaya-sova.html

Trang về cú Bắc cực Cú tuyết

Cú cực (cú trắng) là một loài chim thuộc họ cú. Loài chim lớn nhất, thuộc bộ cú, ở vùng lãnh nguyên. Cú trắng có đầu tròn, mắt màu vàng, chiều dài cơ thể đạt tới 70 cm, nặng 3 kg, sải cánh 165 cm. Khu vực phân bố - lãnh thổ: Âu Á, Bắc Mỹ, Greenland.

Cú Bắc Cực thường sống ở những khu vực thoáng đãng và hiếm khi được tìm thấy trong rừng. Nó ăn chủ yếu các loài gặm nhấm nhỏ: chuột lemming; nó có thể ăn hơn 1.600 con chuột lemming mỗi năm. Chế độ ăn của loài cú còn bao gồm thỏ rừng, động vật ăn thịt nhỏ, chim, cá và thậm chí cả xác thối.

Báo tuyết Sói Bắc Cực Cú Bắc Cực

Bây giờ, để thay đổi màu của tiêu đề, đoạn văn, liên kết, v.v. trên tất cả các trang của trang web cùng một lúc, bạn chỉ cần thực hiện các thay đổi trong một tệp: style.css

Hãy làm cho văn bản trong đoạn p của tất cả các trang có màu xanh. Để thực hiện việc này, trong style.css, thay vì giá trị màu xanh lam, hãy nhập giá trị màu xanh lá cây

P (màu sắc: xanh lá cây; )

Bây giờ màu của văn bản trong các đoạn văn, tất cả các trang của trang web, giữa các thẻ đã chuyển sang màu xanh lục.

Nhiệm vụ: làm cho các liên kết có màu cam

Thuộc tính rel=" " và giá trị biểu định kiểu của nó

Thuộc tính rel=" " của thẻ liên kết cho trình duyệt biết loại tệp nào sẽ được tải vào trang HTML; giá trị biểu định kiểu cho biết tệp CSS sẽ được tải.

Trong ba bài học trước, chúng ta đã học ba cách để nhúng mã CSS vào tài liệu HTML:

  • Nhúng bằng thuộc tính style=" " ảnh hưởng đến một thẻ, phương thức này còn được gọi là nội tuyến
  • Nhúng bằng thẻ ảnh hưởng đến toàn bộ trang, phương pháp này còn gọi là nội bộ
  • Việc triển khai bằng thẻ ảnh hưởng đến toàn bộ trang web, phương pháp này còn được gọi là bên ngoài
  • Bạn có thích các bài học không? Ủng hộ dự án "Hướng dẫn dành cho quản trị viên web"!
    Bạn có thể gửi từ thẻ, điện thoại di động hoặc ví Yandex.
    Số tiền chuyển tối thiểu là 50 rúp.

    Bài viết được cập nhật: ngày 5 tháng 2 năm 2016

    , .

    Nội dung của vùng chứa không được hiển thị trực tiếp trên màn hình, ngoại trừ thẻ đặt tiêu đề của cửa sổ trang web.

    Nhãn

    Thẻ chỉ định tên của trang web, được hiển thị trong tiêu đề cửa sổ hoặc trong tab trình duyệt. Cần thiết cho bất kỳ tài liệu HTML nào. Tiêu đề của trang web phải phản ánh bản chất nội dung của nó.

    Ví dụ Ví dụ về thẻ TITLE... Thẻ

    Thẻ thiết lập một liên kết đến một tệp bên ngoài có liên quan đến tài liệu HTML hiện tại.

    Thùng đựng hàng.

    Ví dụ...

    Trong ví dụ này, chúng tôi kết nối tệp kiểu bên ngoài style.css và đặt biểu tượng trang web favicon.ico.

    Thuộc tính thẻ Bạn cũng có thể sử dụng truy vấn phương tiện làm giá trị. Ví dụ: để tệp css không ảnh hưởng đến giao diện của trang trên thiết bị di động: liên quan Mối quan hệ giữa tài liệu hiện tại và tệp được liên kết.
    Luân phiên một phiên bản thay thế của tài liệu (ví dụ: trang in hoặc bản dịch);
    tác giả liên kết đến trang của tác giả tài liệu;
    giúp đỡ liên kết tới tài liệu trợ giúp;
    biểu tượng biểu tượng trang web (thường được sử dụng với phím tắt);
    giấy phép liên kết đến thông tin bản quyền;
    Kế tiếp liên kết đến tài liệu tiếp theo trong chuỗi;
    pingback liên kết đến địa chỉ của máy chủ Ping-back xử lý Ping-back trong tài liệu hiện tại;
    tìm nạp trước chỉ định rằng tài liệu đích phải được lưu trữ;
    trước liên kết đến tài liệu trước đó trong chuỗi;
    tìm kiếm liên kết đến công cụ tìm kiếm;
    thanh bên liên kết đến tài liệu sẽ được hiển thị trên thanh bên của trình duyệt (nếu có);
    biểu định kiểu liên kết đến tập tin phong cách.
    kích thước Kích thước biểu tượng để hiển thị trực quan (chỉ rel="icon").
    Giá trị: chiều rộng biểu tượng tính bằng pixel mà không chỉ định đơn vị, chữ Latinh x trong mọi trường hợp, chiều cao biểu tượng. Nếu có nhiều biểu tượng, bạn có thể đặt kích thước của chúng cách nhau bằng dấu cách. Từ khóa bất kỳ chỉ ra rằng biểu tượng có thể được thu nhỏ theo bất kỳ kích thước nào. Thuộc tính mới cho thẻ trong HTML 5. kiểu Kiểu dữ liệu MIME của tệp được liên kết.
    Các giá trị thuộc tính có thể có: Nhãn

    Thẻ xác định siêu dữ liệu dành cho trình duyệt và công cụ tìm kiếm. Thông thường, các thuộc tính của bất kỳ thẻ meta nào đều được giảm xuống thành cặp “tên=giá trị”.

    Một vùng chứa có thể chứa nhiều thẻ.

    Ví dụ...

    Ví dụ này đặt mã hóa thành UTF-8, tên tác giả của tài liệu HTML và tự động tải lại trang sau 30 giây.

    Đối với các trang web bằng tiếng Nga, có thể sử dụng một trong hai bảng mã sau: Windows-1251 hoặc UTF-8. Sự khác biệt chính giữa các bảng mã là bộ ký tự được sử dụng. Mã hóa Windows-1251 là một byte, tức là Bạn chỉ có thể biểu thị 255 ký tự trong đó (đối với bảng chữ cái Cyrillic thì điều này là khá đủ). UTF-8 có thể đại diện cho nhiều ký tự hơn vì chuỗi dài tới 6 byte được sử dụng. Ký tự tiếng Nga ở dạng mã hóa UTF-8 mất 2 byte.

    Nếu một tài liệu chỉ chứa các chữ cái trong bảng chữ cái tiếng Nga và không có ký tự nào khác, thì trong UTF-8, nó sẽ lớn gấp đôi. Nếu trang web có một phiên bản - tiếng Nga, thì việc sử dụng UTF-8 sẽ không có ích gì; Nhưng nếu có phiên bản bằng ngôn ngữ khác thì bạn nên chọn UTF-8.

    Đừng quên rằng mã hóa tương tự phải được chọn trong trình soạn thảo văn bản như được chỉ định trong bộ ký tự.

    Thuộc tính thẻ
    bộ ký tự Mã hóa tài liệu. Thuộc tính này được giới thiệu trong HTML5 và nhằm mục đích rút ngắn dạng thẻ, vốn đã chỉ định mã hóa trong các phiên bản HTML trước đó.
    nội dung Giá trị của thuộc tính được chỉ định theo tên hoặc http-equiv. Thuộc tính nội dung có thể chứa nhiều giá trị, trong trường hợp đó chúng được phân tách bằng dấu phẩy hoặc dấu chấm phẩy.
    http-tương đương Xác định tiêu đề HTTP chứa thông tin. Ví dụ: Các ví dụ khác có thể được đưa ra trong các ví dụ dưới đây.
    tên Xác định tên của thẻ meta cho cặp tên=giá trị. Ví dụ:

    Ghi thông tin (Cookie) lên máy khách:


    Thẻ meta có thể được lưu trữ trong một tập tin bên ngoài.

    Thuộc tính thẻ hồ sơ tùy chọn trỏ đến tệp thẻ meta bên ngoài. Giá trị của thuộc tính này là URL của tệp này. Ví dụ.

    Sự miêu tả

    Thẻ HTML xác định mối quan hệ giữa tài liệu HTML hiện tại và tài nguyên bên ngoài mà nó liên kết tới. Nó là một phần tử trống (không có nội dung hoặc thẻ đóng) và phải luôn được đặt bên trong tệp . Thông thường, thẻ được sử dụng để kết nối các biểu định kiểu bên ngoài:

    Thuộc tính href đầu tiên chỉ định địa chỉ của tài liệu, có thể là tuyệt đối hoặc tương đối. Thuộc tính rel thứ hai chỉ định mối quan hệ giữa tệp HTML và bất kỳ thứ gì bạn đang liên kết tới, trong trường hợp này chúng tôi đang liên kết với biểu định kiểu, do đó giá trị biểu định kiểu được sử dụng. Thuộc tính type cho trình duyệt biết loại MIME của tài liệu; đối với các biểu định kiểu, giá trị sẽ luôn là "text/css".

    Lưu ý: theo tiêu chuẩn HTML5, khi kết nối tệp CSS bên ngoài với tài liệu, thuộc tính type không bắt buộc:

    Tải trước trang

    Thông thường, khi bạn nhấp vào liên kết đến một trang khác, bạn phải đợi vài giây để nó tải. Tuy nhiên, bạn có thể định cấu hình trang web của mình để tải trước một số trang nhất định vào bộ đệm của trình duyệt khi bạn đang ở trang hiện tại. Điều này có nghĩa là khi bạn nhấp vào một liên kết để chuyển sang một trang web khác, nó sẽ mở ngay lập tức mà không cần phải đợi tải. Điều này được gọi là "tìm nạp trước trang". Để thực hiện việc này, bạn sử dụng thẻ có thuộc tính rel="prefetch" và cũng chỉ định trang đích sẽ được tải trước trên máy tính của bạn.

    Mục nhập này sẽ cho phép trang tag_p.php được lưu vào bộ đệm trước trên máy tính của bạn trong khi bạn đang đọc nội dung của trang hiện tại. Bạn có thể sử dụng thẻ để tải trước bất kỳ số lượng trang nào trên trang web của riêng bạn hoặc bất kỳ trang nào khác từ Internet.

    Lưu ý: thay vì chỉ định địa chỉ tới tài liệu HTML, bạn có thể chỉ định đường dẫn đến một loại tệp khác (hình ảnh, video, v.v.).

    Thuộc tính href: Chỉ định vị trí (URL) của tệp bên ngoài (đường dẫn tệp có thể được chỉ định bằng địa chỉ tuyệt đối hoặc tương đối). hreflang: Chỉ định mã ngôn ngữ gồm hai chữ cái xác định ngôn ngữ của tài liệu được liên kết tới. Thuộc tính hreflang chỉ được sử dụng cùng với thuộc tính href. media: Xác định tập tin được tối ưu hóa cho thiết bị nào. Nó chủ yếu được sử dụng với các tệp biểu định kiểu để xác định các kiểu khác nhau cho các loại phương tiện khác nhau. Thuộc tính media có thể nhận nhiều giá trị cùng một lúc, cách nhau bằng dấu cách. rel: Cho biết mối quan hệ giữa tài liệu hiện tại và tài liệu được liên kết tới.
    • thay thế - liên kết đến phiên bản thay thế của tài liệu (nghĩa là in trang, bản dịch hoặc nhân bản).
    • tác giả - xác định liên kết đến trang về tác giả của tài liệu hoặc đến trang có thông tin liên hệ của tác giả.
    • canonical - cho phép bạn đánh dấu các trang có nội dung trùng lặp, điều này có nghĩa là tất cả các trang có cùng nội dung phải chứa thẻ có thuộc tính rel="canonical".

      Trong trường hợp này, thuộc tính href phải chứa liên kết đến một trang có nội dung giống hệt nhau mà các công cụ tìm kiếm nên xem xét là liên kết chính:

    • đầu tiên - chỉ định liên kết dẫn đến tài liệu đầu tiên trong chuỗi tài liệu.
    • trợ giúp - liên kết đến một tài liệu trợ giúp.
    • biểu tượng - xác định đường dẫn đến biểu tượng sẽ được sử dụng cho tài liệu hiện tại.
    • cuối cùng - cho biết liên kết dẫn đến tài liệu cuối cùng trong chuỗi tài liệu.
    • giấy phép - một liên kết đến thông tin bản quyền của tài liệu.
    • tiếp theo - cho biết tài liệu này là một phần của bộ sách và liên kết sẽ dẫn đến tài liệu tiếp theo trong bộ sách đó.
    • tìm nạp trước - chỉ định rằng tệp mà các điểm liên kết sẽ được lưu trữ trước.
    • trước - cho biết rằng tài liệu này là một phần của một bộ và liên kết đến tài liệu trước đó trong bộ đó.
    • tìm kiếm - liên kết để tìm kiếm tài liệu.
    • biểu định kiểu - xác định một tệp bên ngoài sẽ được sử dụng làm biểu định kiểu cho tài liệu này.
    kích thước: Chỉ định kích thước của biểu tượng để hiển thị trực quan. Thuộc tính kích thước chỉ được sử dụng cùng với rel="icon" và có thể nhận các giá trị sau:
    • widthXheight - xác định danh sách các kích thước được phân tách bằng dấu cách, mỗi kích thước phải ở định dạng - widthxheight (kích thước biểu tượng được xác định bằng pixel), ví dụ:
    • bất kỳ - biểu tượng có thể được thu nhỏ theo bất kỳ kích thước nào.
    type: Cho biết loại MIME (đặc tả để định dạng tin nhắn và mã hóa thông tin để truyền qua Internet) của tài liệu được liên kết đến, chỉ được sử dụng cùng với thuộc tính href.

    Thẻ cũng hỗ trợ

    Các phần tử nằm trong phần đầu không được hiển thị rõ ràng trên trang và được sử dụng cho các chức năng tiện ích.

    Phần đầu có thể chứa các tập lệnh, hướng dẫn thiết kế trang và nhiều thông tin meta khác nhau về tài liệu HTML này.

    Các phần tử sau phải được đặt trong phần đầu: , , , và .

    yếu tố tiêu đề

    Sử dụng phần tử này, bạn có thể đặt tiêu đề của tài liệu HTML. Phần tử tiêu đề phải có trong tất cả các tài liệu HTML.

    yếu tố tiêu đề:

    • Xác định tiêu đề của cửa sổ trình duyệt;
    • Được sử dụng làm tiêu đề trang trong kết quả của công cụ tìm kiếm;
    • Được sử dụng làm tiêu đề trang khi thêm một trang web vào mục yêu thích của bạn.

    website - hướng dẫn trực tuyến về HTML, CSS, JavaScript, jQuery, HDOM, AJAX.

    phần tử meta

    Siêu dữ liệu là thông tin về dữ liệu có trong tài liệu HTML. Ví dụ siêu dữ liệu: mã hóa trang, mô tả ngắn gọn nội dung, từ khóa, tên tác giả, ngày sửa đổi lần cuối.

    Siêu dữ liệu không được hiển thị rõ ràng trên trang nhưng được trình duyệt và công cụ tìm kiếm sử dụng.

    Trong HTML, siêu dữ liệu của tài liệu HTML được xác định bằng thẻ. Thẻ phải luôn được đặt ở phần đầu.

    Về mã hóa

    Để cho trình duyệt của người dùng biết mã hóa nào được sử dụng trên trang này, bạn phải sử dụng thuộc tính bộ ký tự của thẻ meta.

    Xin lưu ý: nếu bạn không chỉ định rõ ràng mã hóa như trong ví dụ trên, trình duyệt sẽ tự động xác định mã hóa đó khi hiển thị trang. Nếu xác định mã hóa không chính xác, người dùng sẽ thấy một trang chứa các ký tự vô nghĩa, do đó mã hóa phải được chỉ định cho từng tài liệu HTML.

    Lưu ý rằng trong HTML5, việc mã hóa có thể được chỉ định bằng thuộc tính bộ ký tự mới, như thế này.

    Các phần tử meta và công cụ tìm kiếm

    Một số công cụ tìm kiếm xem xét các phần tử meta khi lập chỉ mục một trang.

    Ví dụ: phần tử meta bên dưới xác định mô tả cho tài liệu HTML (mô tả này có thể được các công cụ tìm kiếm sử dụng khi hiển thị tài liệu trong kết quả tìm kiếm):

    Phần tử meta sau chỉ định từ khóa cho tài liệu:

    Xin lưu ý: do nhiều quản trị viên web, để tăng thứ hạng của trang web, đã chỉ ra một số lượng lớn từ khóa không liên quan đến trang web của họ, nhưng các công cụ tìm kiếm phổ biến đã buộc phải ngừng sử dụng từ khóa để xác định từ khóa của trang .

    Yếu tố liên kết

    Bằng cách sử dụng thẻ, bạn có thể liên kết tài liệu HTML với tệp CSS bên ngoài.

    phần tử cơ sở

    Sử dụng thẻ, bạn có thể đặt địa chỉ gốc (địa chỉ sẽ được thay thế cho các liên kết tương đối) và phương thức mặc định để mở liên kết.

    Thuộc tính href được sử dụng để đặt địa chỉ gốc mặc định. Theo mặc định, địa chỉ gốc bằng tên miền của trang web.

    Nếu thẻ cơ sở chưa được xác định thì chúng ta sẽ được chuyển tới tài liệu "http://www..html".

    Liên kết đến example.html

    Xem lướt qua

    Thuộc tính đích chỉ định cách mở liên kết. Theo mặc định, các liên kết sẽ mở trong cùng một cửa sổ trình duyệt.

    Bằng cách nào đó, tôi nảy ra ý tưởng thành thạo PHP và như bạn biết, cách tốt nhất để học một ngôn ngữ là tạo một khung xe đạp trên đó. Trong khi tìm hiểu nhiều diễn đàn và chủ đề khác nhau, tôi bắt đầu quan tâm đến một phương pháp được quảng bá bởi công ty uy tín Yandex - BEM. Đối với những người chưa biết về phương pháp này, hãy đọc nó trên trang chính thức. Ngoài ra còn có một ấn phẩm về Habré của Habrauser, trong đó mọi thứ sẽ được giải thích bằng một ví dụ cụ thể. Yandex đã viết các mô-đun và tập lệnh tập hợp dự án của riêng họ, nhưng tất cả chúng đều được triển khai trong Node.js, nhưng tôi không thể tìm thấy bất kỳ thứ gì tương tự trong PHP (mặc dù, thành thật mà nói, tôi không thực sự tìm kiếm nó). Ngoài ra, PHP, với tư cách là một ngôn ngữ hướng đối tượng, cung cấp những khả năng thú vị.

    Bắt đầu Tải xuống thư mục BemPHP từ GitHub và đặt nó vào thư mục chứa dự án của bạn. Tiếp theo chúng ta kết nối BemPHP.php:
    include_once "BemPHP/BemPHP.php";
    Nếu bạn chưa có chức năng tự động tải, hãy đăng ký nó:
    BemPHP::register_autoload();
    Bây giờ hãy tạo khối đầu tiên của chúng ta. Để làm điều này, bạn cần tạo một thư mục trong thư mục BemPHP/blocks/ với tên của khối, ví dụ “b-block-name”. Đó là tất cả. Điều này đã đủ để cho phép một đối tượng của lớp Block có tên b-block-name được tải vào bộ lưu trữ khối. Hãy tải nó xuống:
    BemPHP::includeBlocksList("b-block-name");
    Tất nhiên, tải từng khối riêng biệt theo cách này sẽ là quá nhiều, vì vậy bạn có thể viết chúng cách nhau bằng dấu phẩy:
    BemPHP::includeBlocksList("b-block-1, b-block-2, block-3');
    Xin lưu ý rằng “block-3” được viết mà không có tiền tố 'b-', đây không phải là lỗi, trong trường hợp này khối có tên “b-block-3” vẫn sẽ được tải, nếu có, trong số khóa học. Tiền tố "b-' chỉ ra rằng thư mục này chứa mô tả về khối; nếu thư mục khối chứa thư mục không bắt đầu bằng tiền tố này thì nó sẽ bị bỏ qua. Không cần thiết phải chỉ định tiền tố trong phương thức includeBlocksList.
    Việc liệt kê tất cả các khối cần thiết cũng khá tốn công nên bạn có thể viết các mặt nạ, ví dụ:
    BemPHP::includeBlocksList("b-page1*, *input*, *down');
    Trong trường hợp này, tất cả các khối bắt đầu bằng b-page1 sẽ được tải, tất cả đều có đầu vào từ trong tên của chúng và tất cả đều kết thúc bằng xuống. Ví dụ: nếu bạn cần mọi thứ bắt đầu bằng b-page1 và có đầu vào thì mục nhập sẽ trông như thế này: b-page1*input*. Chà, nếu bạn cần tải tất cả các khối mà không có ngoại lệ, thì hãy làm như sau:
    BemPHP::includeBlocksList("*");
    Bây giờ bạn có thể thêm kiểu và mô tả hành vi vào thư mục b-block-name. Với mục đích này, hãy tạo các tệp b-block-name.css và b-block-name.js trong thư mục; chúng sẽ tự động được tải vào đối tượng. Điều đáng chú ý là tên tệp phải khớp với tên khối, nếu không chúng sẽ bị bỏ qua. Ngoài ra, trong quá trình tải, tệp b-block-name.css sẽ được kiểm tra xem có mô tả về kiểu lớp ".b-block-name" và nén hay không, nghĩa là loại bỏ các khoảng trắng thừa, ngắt dòng và nhận xét . Định nghĩa về một khối Khi chúng ta đang xử lý một ngôn ngữ hướng đối tượng, sẽ rất tuyệt nếu tạo các khối dưới dạng đối tượng bằng cách sử dụng PHP. Để thực hiện việc này, hãy tạo một tệp b-block-name.php trong thư mục b-block-name. . Trong trường hợp này, các tệp .css và .js sẽ bị bỏ qua và toàn bộ khối mô tả sẽ được lấy từ tệp php.

    Sử dụng BemPHP\Block; $_blockName_ = "b-block-name"; /* hãy chắc chắn chỉ định tên khối (nó phải là duy nhất) */ $_blockObj_ = new Block($_blockName_); $_blockObj_->setBlockDir(__DIR__) /*hãy chắc chắn chỉ định thư mục khối, nếu không các tệp kết nối có thể không hoạt động chính xác*/ ->loadCSSFile($_blockName_.".css") /* tải dữ liệu từ tệp css (nếu bạn gửi null, thì tệp $_blockName_.".css") sẽ được tìm kiếm */ ->loadJSFile()/*tải một tệp thuộc loại.js*/ ->addCssRule("color:red","hover") / *thêm một thẻ nữa vào cuối quy tắc mô tả kiểu*/ ->setTag("a") /*thêm thẻ. nếu thẻ không được xác định thì mặc định là Block::TAG_DEFAULT*/ ->setAttribution("href","http://tricksterz.ru") /*set tag attribute*/ ->setContent("Tricksterz") /*thêm nội dung*/ ->addContent("",true) /*thêm nội dung vào đầu*/ ->addContent("") /*thêm vào cuối*/ ;
    Ở đây chúng ta tạo một đối tượng của lớp Block, khi tạo sẽ được lưu trong bộ lưu trữ khối, chỉ định thư mục lưu trữ các tệp khối, tải các tệp (đường dẫn được chỉ định tương ứng với thư mục được chỉ định ở trên), thêm kiểu quy tắc (tham số thứ hai là lớp giả), đặt thẻ khối (theo mặc định nó được đặt thành div), thêm thuộc tính và chèn nội dung. Hai phương pháp đáng chú ý là setContent và addContent. Phương thức đầu tiên đặt nội dung bằng cách xóa nội dung trước đó, phương thức thứ hai thêm nội dung, trong khi phương thức addContent có tham số thứ hai, trong trường hợp đúng, sẽ thêm nội dung vào đầu và trong trường hợp sai, sẽ thêm vào cuối của nội dung hiện có. Mặc định là sai.

    Trồng cây Các khối đã được tạo và tải vào kho lưu trữ khối, bây giờ chúng ta hãy đưa chúng ra ánh sáng. Để thực hiện việc này, bạn cần kết nối mô-đun Cây và xây dựng cây BEM:
    sử dụng BemPHP\Tree; […] echo Tree::html("b-block-name");
    Mục sau sẽ xuất hiện trong tài liệu HTML đã tạo:
    Tricksterz
    Mọi thứ đều ổn, nhưng chúng tôi không có mô tả về phong cách của lớp '.b-block-name'. Để thực hiện việc này, trong tiêu đề trang bên trong thẻ kiểu, chúng tôi hiển thị css của tất cả các khối của chúng tôi:

    Chúng tôi làm tương tự với các tập lệnh js:

    Trong tương lai, các tập lệnh này có thể được thu nhỏ và xuất ra các tệp riêng biệt (việc triển khai được lên kế hoạch trong bản phát hành 1.2).
    Điều đáng chú ý là phương thức Tree::html($blockName) trả về một đối tượng, nhưng là một đối tượng không phải là một khối như vậy mà là một khối được bao bọc. Điều này là cần thiết để có thể xác định lại khối một cách nhanh chóng. Ví dụ mã:
    echo Tree::html("b-block-name")->setTag("p"); echo Tree::html("b-block-name");
    Sẽ xuất ra như sau:

    Tricksterz

    Tricksterz
    Nghĩa là, bản thân khối vẫn không bị ảnh hưởng, chúng tôi chỉ cần xác định lại thẻ của nó trong quá trình xuất.
    Vì Tree::html() trả về một đối tượng nên chúng ta có thể gán tham chiếu đến nó cho một biến nào đó:
    $b_block_name = Tree::html('b-block-name');
    Trong trường hợp này, nếu chúng ta xác định lại thẻ, nó sẽ vẫn “sống” trong biến này, vì chúng ta thay đổi các thuộc tính của một đối tượng trình bao bọc cụ thể:
    echo $b_block_name->setTag("p"); echo $b_block_name;
    Sẽ xuất ra:

    Tricksterz

    Tricksterz


    Để trả lại trình bao bọc về trạng thái ban đầu, tức là. về trạng thái của khối ban đầu, bạn cần sử dụng phương thức getDefault():
    echo $b_block_name->setTag("p"); // sẽ có thẻ p echo $b_block_name->getDefault(); // sẽ có một thẻ
    Vì vậy, ví dụ, bạn có thể tạo một tệp trong đó tất cả các khối sẽ được mô tả dưới dạng biến:
    $b_menu = Tree::html('b-menu'); $b_menu__item = Tree::html('b-menu__item'); […]
    Kết nối nó và mô tả cây BEM bằng cách tô sáng cú pháp:
    echo $b_menu->setContent($b_menu__item->setContent("Home")->setAttribution("href",,"#home"). $b_menu__item->setContent("Music")->setAttribution("href"," #music"). $b_menu__item->setContent("Video")->setAttribution("href","#video")); Khối ghép “Mọi thứ có vẻ rõ ràng với các khối, nhưng còn các phần tử và công cụ sửa đổi thì sao?” - người đọc chăm chú sẽ kêu lên. Thực tế là các phần tử và phần bổ trợ về cơ bản là các khối giống nhau, chỉ khác là chúng được sử dụng cùng với các khối gốc của chúng. Để hiểu, chúng ta hãy xem một ví dụ cụ thể được mô tả trong ví dụ tôi đã đề cập trước đó. Có một triển khai của menu sau:

    Hãy làm nó. Đầu tiên, tạo một thư mục ‘b-menu’ bên trong nó b-menu.css với nội dung:
    .b-menu ( lề:0; đệm:0; kiểu danh sách:none; chiều rộng:100%; hiển thị:bảng; bố cục bảng: cố định; )
    Sau đó thư mục b-link chứa b-link.css:
    .b-link ( color:#525252; cỡ chữ:12px; )
    Trong thư mục b-link, tạo thư mục sửa đổi b-link_menu:
    .b-link_menu ( text-align:center; color:#bfbfbf; con trỏ:con trỏ; cỡ chữ:14px; chiều cao:38px; màu nền:#f3f3f3; chiều cao dòng:38px; đường viền: 1px liền khối #e7e7e7; hiển thị:ô bảng;trang trí văn bản:none;
    Trong thư mục b-link_menu, chúng tôi tạo một công cụ sửa đổi khác b-link_menu_active:
    .b-link_menu_active ( color:#fefefe; Background-color:#29c5e6; border:1px Solid #29c5e6; con trỏ: mặc định; )
    Bây giờ hãy xác định các tham số khối bằng cách tạo các tệp b-menu.php, b-link.php và b-link_menu_active.php trong các thư mục tương ứng:
    //b-menu.php $_blockObj_ = Khối mới("b-menu"); $_blockObj_->setBlockDir(__DIR__) ->loadCSSFile() ->setTag("nav"); //b-link.php $_blockObj_ = Khối mới("b-link"); $_blockObj_->setBlockDir(__DIR__) ->loadCSSFile() ->setTag('a'); //b-link_menu_active.php $_blockObj_ = Khối mới("b-link_menu_active"); $_blockObj_->setBlockDir(__DIR__) ->loadCSSFile() ->setTag('div');
    Bây giờ hãy thêm tất cả những thứ này vào trang của chúng tôi:
    //mảng tên các phần và liên kết $menu_items_arr = array("HOME"=>"home", "ABOUT US"=>"aboutus", "SERVICES"=>"services", "PARTNERS"=>"partners", " KHÁCH HÀNG"=>"khách hàng", "Dự án"=>"dự án", "nghề nghiệp"=>"nghề nghiệp", "LIÊN HỆ"=>"liên hệ"); // trong một vòng lặp, chúng ta tạo một cây gồm các phần foreach ($menu_items_arr as $itemName=>$param) ( if ($_GET["param"]==$param) $active = "b-link_menu_active"; else $active =null; $ menu_items_tree = $menu_items_tree.Tree::html("b-link b-link_menu".$active)->setAttribution("href","?param=".$param)->setContent($itemName) //); bọc cây phần trong menu $main_menu = Tree::html("b-menu")->setContent($menu_items_tree); tiếng vang $main_menu;
    Như bạn có thể thấy, bạn có thể thêm nhiều tên khối cùng một lúc vào phương thức Tree::html(), cách nhau bằng dấu cách. Trong trường hợp này, việc gán lại các tham số khối sẽ xảy ra theo tầng. Ví dụ: trong khối b-link, thẻ “a” được xác định và trong khối b-link_menu_active thẻ ‘div’ được xác định. Nếu chúng ta viết Tree::html('b-link b-link_menu'), đầu ra sẽ bao gồm thẻ 'a', vì thẻ không được xác định trong khối b-link_menu và nó sẽ được kế thừa từ khối trước đó. Trong trường hợp mục nhập Tree::html('b-link b-link_menu b-link_menu_active'), thẻ 'div' sẽ được chỉ định vì nó được xác định cho khối nằm ở cuối chuỗi. Điều tương tự sẽ xảy ra với nội dung. Điều sau đây sẽ xảy ra với các thuộc tính: nếu thuộc tính này đã tồn tại thì nó sẽ được xác định lại, nếu khối trước đó không có thuộc tính như vậy thì nó sẽ được thêm vào các thuộc tính đã tồn tại. Phần thưởng nếu bạn nhìn vào html. Mã mà bạn có sẽ là kết quả của việc tạo trang của riêng bạn, nó sẽ khó đọc vì không có thụt lề và ngắt dòng, nhưng nếu bạn cần xem html được tạo của một khối, bạn có thể “đánh dấu” nó sử dụng phương thức chiếu sáng():
    echo Tree::html("b-block-name")->lighting();
    Sau đó, html được tạo sẽ có nội dung sau: