Cách sử dụng từ ngữ sẽ ảnh hưởng trực tiếp đến não bộ và thay đổi cuộc đời bạn

Hãy cẩn thận bởi vì từ tiếp theo bạn nói ra có thể quyết định một ngày của bạn sẽ diễn ra như thế nào, hoặc nó cũng sẽ quyết định phần còn lại của cuộc đời bạn sẽ ra sao.

Các bác sĩ tại Đại học Thomas Jefferson đã giải thích rằng việc lựa chọn từ ngữ thực sự có tác động mạnh mẽ tới cuộc sống của chúng ta hơn chúng ta thực sự nghĩ. Bạn nghĩ rằng những câu nói như: “Tôi không thể”, “Tôi sẽ không” hoặc “Việc đó quá khó”, là vô hại? Sai rồi. Khi sử dụng những từ ngữ và những câu như vậy liên tục, đủ lâu và đúng theo nghĩa đen bộ não của bạn sẽ bị thay đổi và đây là lý do tại sao.

Những từ ngữ tích cực sẽ tác động trực tiếp lên Thùy trán của bạn.

Tiến sĩ Andrew Newberg và Mark Robert Waldmen, tác giả của cuốn sách thay đổi cuộc sống, “Từ ngữ có thể thay đổi bộ não của bạn”, đã viết rằng “chỉ một từ duy nhất cũng có khả năng ảnh hưởng đến sự biểu hiện của gen điều hòa căng thẳng về thể chất và tinh thần.” Bằng việc sử dụng từ ngữ tích cực hơn trong cuộc sống hàng ngày của chúng ta, vùng thùy trán sẽ được kích hoạt và buộc phải hoạt động. Việc này khiến cho ta kích hoạt được tư duy và sử dụng não bộ tốt hơn.

Bằng cách kích thích hoạt động thùy trán, bạn đang phát triển một vùng đặc biệt. Vùng đặc biệt này có chức năng phân biệt đúng sai, có khả năng ghi đè và ngăn chặn phản ứng xã hội không thể chấp nhận. Kết quả của việc sử dụng thường xuyên các từ ngữ tích cực sẽ cung cấp cho bạn động lực để chịu trách nhiệm về cuộc sống của bạn và sự lựa chọn của bạn.

Sử dụng các từ ngữ tiêu cực sẽ làm tăng hormone stress

Vậy điều gì sẽ xảy ra khi chúng ta sử dụng quá nhiều từ tiêu cực? Việc sử dụng các từ ngữ tiêu cực sẽ kích hoạt phản ứng sợ hãi trong chúng ta điều này làm tăng hormone stress của chúng ta mà hạch hạnh nhân (Amygdala) có trách nhiệm. (Hạch hạnh nhân – amygdala, nằm ở tâm của não là nơi xử lý các yếu tố gây cảm xúc ở con người.) Tích tụ quá nhiều tiêu cực khiến chúng ta trở nên cáu kỉnh và rơi vào trạng thái căng thẳng, trầm cảm. Cảm giác này sẽ xâm chiếm toàn bộ cơ thể chúng ta.

Cho dù sự thật là một chút căng thẳng sẽ tốt cho cơ thể chúng ta, nhưng quá nhiều có thể gây ra nhiều vấn đề đối với sức khỏe thể chất và tinh thần.

Thay đổi cách chúng ta nhìn nhận bản thân mình và những người khác.

Các bác sĩ nói thêm nữa rằng việc sử dụng ngôn ngữ tích cực có thể bắt đầu thay đổi các chức năng của thùy đỉnh đó là bộ phận chịu trách nhiệm về cách chúng ta nhìn bản thân và người khác. Khi có cái nhìn tích cực của bản thân thông qua việc sử dụng ngôn từ tích cực, chúng ta cũng sẽ có xu hướng nhìn ra các điểm tốt đẹp của người khác thay vì sẽ nhìn thấy và bới móc những khuyết điểm của họ.

Nghiêm trọng hơn, khi mô tả thế giới xung quanh bằng những từ ngữ tiêu cực, cơ thể chúng ta sẽ bị xâm chiếm bởi sự nghi ngờ. Sự nghi ngờ này sẽ thay đổi cách chúng ta ứng xử với xã hội, mất niềm tin và mọi thứ bắt đầu trở nên tồi tệ.

Thí nghiệm cụ thể

Các nghiên cứu đã được tiến hành để xem liệu có đúng rằng việc sử dụng từ ngữ nâng cao tinh thần có thể giúp thay đổi não bộ và cách suy nghĩ của chúng ta hay không. Một nhóm người trong độ tuổi trưởng thành từ 35 tuổi đến 54 được giao nhiệm vụ viết ra ba điều mỗi ngày trong 3 tháng tiếp theo sẽ làm cho họ hạnh phúc nhất và tại sao họ chọn ba điều đó.

Hãy cẩn trọng: Cách sử dụng từ ngữ sẽ ảnh hưởng trực tiếp đến não bộ của bạn
Hãy cẩn trọng: Cách sử dụng từ ngữ sẽ ảnh hưởng trực tiếp đến não bộ của bạn
Kết quả nghiên cứu phát hiện rằng những người lớn cảm thấy hạnh phúc hơn và ít bị trầm cảm hơn. Nghiên cứu cũng chỉ ra rằng chúng ta đều có khả năng thay đổi quá trình suy nghĩ của não bộ và làm cho chúng ta trở nên tích cực hơn bằng cách tập trung vào những điều làm cho chúng ta hạnh phúc thay vì các vấn đề làm chúng ta đau khổ hoặc buồn chán.

Phương pháp thực tiễn của việc sử dụng ngôn ngữ tích cực

Khi chúng ta đang tức giận, chúng ta thường phát ngôn những từ, những câu khiến chúng ta cảm thấy hối tiếc khi đã hạ nhiệt. Các chuyên gia nói rằng sở dĩ có điều này là bởi vì khi những lời giận dữ được bộ phát, các vùng logic và lý luận nằm ở thùy trán của chúng ta sẽ bị vô hiệu.

Hạch hạnh nhân là trung tâm chỉ huy của chúng ta quyết định sẽ tiến hành “chiến đấu” hay “rút lui”. Điều này giải thích lý do tại sao hầu hết chúng ta không thể suy nghĩ trước về cách thức phản xạ trong khi chúng ta đã rơi vào trạng thái giận dữ. Một số chuyên gia khoanh vùng vấn đề này và gọi nó là “Hạch Hạnh nhân tặc” (amygdala Hijacking) (Giống như kẻ cắp lý trí tạm thời)

Với thói quen sử dụng ngôn ngữ tích cực, chúng ta có thể buộc thùy trán hoạt động có hiệu quả hơn ngay cả khi đang trong trạng thái tức giận và có lý trí hơn khi chiến đấu với cơn giận dữ.

Nếu bạn đang chưa biết là bạn đang sử dụng từ ngữ tích cực nhiều hơn hay tiêu cực nhiều hơn hãy bắt đầu lưu ý đến việc sử dụng từ ngữ khi giao tiếp hoặc phát ngôn và viết nó ra giấy để định hình.

Ngoài ra bạn có thể áp dụng luôn nghiên cứu đã được thực nghiệm trong bài viết bằng cách khi bắt đầu mỗi ngày mới, hãy viết ra 3 điều khiến bạn hạnh phúc hơn mỗi ngày. Sau đó hãy tự đánh giá sự thay đổi trong cuộc sống của bạn khi thực hiện phương pháp này.

Tác giả: Lim Kairen.

Người dịch: Tô Triều – Độc quyền trên iSách

Phải có một điều gì đó để mà nuối tiếc.

Cậu biết đấy. Giường ký túc của anh ấy có hai tầng. Anh ấy bốc thăm phải nằm tầng một.

Bạn bè kể rằng ngày rời ký túc đi về thành phố, ra đến cổng rồi còn chạy quay trở lại, chụp lấy một tấm ảnh rồi mới đi. Sàn giường tầng hai dán đầy ảnh của cậu, mấy năm đại học chỉ gom góp được ngần ấy tấm ảnh. Đêm nằm ngả lưng là có thể thấy cậu “trên trời”, nói rằng thế này là đi cho đủ được một giấc mơ. Tấm ảnh đó đây.

Chúng ta, mãi mãi bỏ lỡ một người nào đó. Luôn luôn khiến một người nào đó phải đau lòng.

Không bởi chúng ta vô tâm. Mà vì đó chính là tuổi trẻ:

Phải có một điều gì đó để mà nuối tiếc.

[ Chuyện những gã trai vụt lớn ]

From BeP

TỬ VI NĂM 2017 – TUỔI ĐINH MÃO NAM MẠNG 1987

? TỬ VI NĂM 2017 – TUỔI ĐINH MÃO NAM MẠNG 1987 ?

? Đây là phần luận giải lá số tử vi Đinh Mão nam mạng, 31 tuổi (âm lịch), sinh từ 29/01/1987 đến 16/02/1988 trong năm 2017 Đinh Dậu
————————
? SAO: Thái bạch: Hao hụt tiền bạc và sức khỏe kém: Xấu
? HẠN: Thiên tinh: Phòng kiện tụng, tranh chấp pháp luật: Nhẹ
? VẬN NIÊN: Long ngộ vân: Rồng gặp mây: Tốt
? Mạng: HOẢ gặp năm HOẢ là Cùng hành,lợi thế: Tốt
? Địa chi tuổi MÃO gặp năm DẬU là Sanh xuất: Tốt
? Thiên can tuổi: ĐINH gặp năm ĐINH : Khắc nhập: xấu
? Chiếu theo sự vận chuyển của Âm — Dương Ngũ Hành trong vũ trụ, năm (Đinh Dậu 2017- 2018) tiểu vận dóng tại cung: Trung ương, Hành thổ thuộc hướng Đông Nam thiên Đông. Đối với tuổi Đinh Mão là bất lợi: Xấu
————————
? Theo như trên có thể luận đoán tổng quát, năm nay quý bạn may mắn trong việc mua bán hay thay đổi nhà cửa hay thay đổi chỗ ở, đây là một thời cơ tốt khó bỏ qua mà khó gặp lại sau này. Đồng thời Thái tuế, Quan phù Bạch hổ tam hợp, nghĩa là quý bạn tính tình cương nghị, phong độ hoạt bát, chính quý bạn là người gánh vác và đem lại giàu sang và hạnh phúc cho gia đình tương lai.
————————
? Về phương diện ngoại giao và việc làm
Trong năm nay, có thể nói sáu tháng đầu đều hoàn thành tốt đẹp bệnh tật hay mất tiền, có thể ảnh hưởng trên công việc làm, coi chừng ảnh hưởng tranh chấp trên vấn đề tài chính việc làm đưa đến cảnh tuyệt giao với bạn bè.
————————
? Phương diện tài chính
Năm nay giáp Lộc tồn mà bị triệt nên thu nhập không mấy tốt đẹp, có thể bị đuổi việc làm, bị mất cắp tiền bạc hay của cải hay thay đổi chỗ ở, nếu phải chọn thì thà mất tiền còn hơn bệnh tật. Tháng 1 và tháng 9 có tiền bạc.
————————
? Phương diện tình cảm
Năm nay quý bạn sẽ gặp người bạn đời, mới gặp đã đem lòng yêu thương mà tính tới chuyện hôn nhân cho hai họ uống rượu hồng. Bạn nào đã có gia đình thì có thêm cháu bé, vợ chồng thật vui vẻ hạnh phúc.
————————
? Phương diện sức khoẻ
Phong thấp đau nhức, dị ứng, tim mạch.
————————
? Đầu năm nên cầu an giải hạn hay cúng sao, mỗi tháng vào ngày 15 âm lịch dùng 8 ngọn đèn, hoa quả, 3 ly trà, quay mặt về hướng chính Tây mà khấn vái “Tây Phương Canh Tân Kim Đức Tinh Quân”. Mồng một tết nên xuất hành hướng Nam để nghênh tiếp Tài thần. Đi từ 11 đến 13 giờ trưa, tính theo giờ nơi cư ngụ.
————————
? Diễn biến từng tháng trong năm 2017

?Tháng giêng: Đầu năm có nhiều tranh chấp và bất đồng ý kiến.
?Tháng hai: Tiền bạc và tình cảm đều có nhưng tâm hồn cô đơn.
?Tháng ba: Bản tính tốt nhưng lòng sao quá buồn bực chán nản.
?Tháng tư: Hành thiện tác phước mang lại hạnh phúc mai sao
?Tháng năm : Thành đạt trong việc tu bổ nghề nghiệp và tăng lương.
?Tháng sáu: Số đào hoa, nhiều người để ý thật vui vẻ.
?Tháng sáu nhuần: Tính quân tử vui vẻ đẹp trai,nhưng bị hao hụt tiền bạc.
?Tháng bảy: Tin vui về mua nhà bán cửa và của cái bất động sản.
?Tháng tám: Tình chàng ý thiếp nòng nàn yêu thương.
?Tháng chín : Tiền tài mỹ mãn, tâm hồn quân tử ai lại không mến
?Tháng mười: Có chuyện buồn nhưng được quý nhân cứu thoát.
?Tháng mười một: Hao tiền của và đời sống mệt mỏi
?Tháng chạp :Thường hay giúp người nghèo khó và tốn tiền bạc.
————————
☝ Nói chung cuộc đời của tuổi Đinh Mão nam mạng đa tài đa trí, khôn ngoan lanh lợi, học cao hiểu rộng, giữ được tấm lòng chung thủy, còn với bạn bè tình nghĩa rõ ràng.
☝Nhận thì ăn thì báo đáp ngay, cho nên trong hoàn cành khó khăn thế nào đi chăng nữa thì cũng vượt qua mau.
☝Tiền tài có sự rắc rối, tuy thu nhập nhiều nhưng chi tiêu không được thoải mái.
☝Quý anh Đinh Mão luôn được quý nhân ưu đãi trong mọi công việc, bản tính vừa có khả năng lại gặp thời cơ tốt, nên mọi dự tính được thành công một cách hoàn hảo. Sơ niên gian nan tai ách, trung niên học hành thi cử tốt, hậu vận thành đạt tiền bạc cập trường thọ chi số.
————————
☝ Tuổi Đinh mão nam mạng hợp với tuổi Ất Hợi, Mùi Khắc với tuổi Giáp Tý, Ngọ
☝ Tuổi Đinh mão nam mạng hợp với màu ĐỎ, XANH
☝ Khắc với màu đen, vàng.
* Chú ý: Các tháng trong năm là tháng âm lịch.

Từ bỏ

Từ bỏ thói quen hay vội vàng

Nói làm hấp tấp thiếu đoan trang
Thiếu suy xét kỹ không từ tốn
Hối hận ăn năn cũng muộn màng.

Từ bỏ thói quen hay đắm say
Say ăn say ngủ thêm say tài
Say tình say rượu say danh vọng
Say quá khổ đau suốt tháng ngày.

Từ bỏ thói quen hay dối gian
Làm người chân thật sống đàng hoàng
Dù ai giả dối mình đừng giả
Nghiệp báo không sai rất rõ ràng.

Từ bỏ thói quen hay giận hờn
Nói lời trách móc phân thua hơn
Chiến tranh miệng lưỡi rất nguy hiểm
Phải biết thuận hòa sống chánh chơn.

Từ bỏ thói quen hay thở than
Chuyện gì không đáng cũng than van
Làm cho mệt mỏi người nghe thấy
Chấp nhận là xong mọi việc an.

Từ bỏ thói quen hay tự cao
Cuộc đời lên xuống sóng ba đào
Vô thường thay đổi đâu yên mãi
Khiêm hạ hòa đồng sống với nhau.

Từ bỏ thói quen hay tự ti
Buồn phiền mặc cảm thêm sầu bi
Tự tin làm lại những điều tốt
Đừng mãi đeo mang một thứ gì.

__(())__
Nam Mô A Di Đà Phật.

Sử dụng PHP Generators trong cải thiện hiệu năng của ứng dụng web

NdSaLjnQx6GCgerH3AZQ_generating a range of numbers.PNG

Chào các bạn, như chúng ta đã biết, tốc độ của một trang web liên quan trực tiếp đến trải nghiệm của người dùng. Nó làm nên sự khác biệt giữa một ứng dụng web tốt và một ứng dụng web hoàn hảo. Chính vì thế, ở vị trí của một developer, chúng ta luôn luôn mong muốn tìm mọi cách để cải thiện hiệu năng của sản phẩm mà chúng ta làm ra. Có chút gì đó lan man không nhỉ, chúng ta đang nói về PHP Generators cơ mà, sao lại bàn đến hiệu năng và tốc độ ở đây nhỉ. Vâng, trong khá nhiều cách để cải thiện hiệu năng của một trang web tốt hơn, hôm nay mình xin được giới thiệu đến các bạn một phương pháp tối ưu hóa hiệu năng trực tiếp trong code. Đó là sử dụng PHP Generators. Chúng ta cùng nhau bắt đầu nhé.

PHP Generators là gì?

Bắt đầu từ version 5.5, PHP cung cấp cho chúng ta một phương pháp mới để truy nhập đến dữ liệu trong một mảng mà không cần lưu trữ tất cả các phần tử của mảng trong không gian bộ nhớ gọi là các hàm Generators. Vẫn có một chút khó hiểu phải không? Chúng ta sẽ cùng nhau xem qua một ví dụ sau để rõ hơn về vấn đề này.

Đầu tiên, trên server của chúng ta cần tạo một file tên là generator.php và chúng ta sẽ sử dụng nó xuyên suốt bài này. Sau khi tạo file chúng ta hãy thêm một số dòng code như sau:

PHP
<?php
function getRange ($max = 10) {
    $array = [];

    for ($i = 1; $i < $max; $i++) {
        $array[] = $i;
    }

    return $array;
}

foreach (getRange(15) as $range) {
    echo "Dataset {$range} <br>";
}

Sau đó chúng ta hãy khởi động server đã cài đặt PHP

PHP
php -S localhost:8000

Khởi động trình duyệt và vào địa chỉ http://localhost:8000/generator.php chúng ta sẽ thấy kết quả của đoạn chương trình trên như sau: NdSaLjnQx6GCgerH3AZQ_generating a range of numbers.PNG

Ồ, có vẻ như mọi thứ chưa có gì bất ổn lắm cho đến một ngày đẹp trời chúng ta thử khởi tạo hàm getRange()của chúng ta với một số vô cùng lớn. Chẳng hạn như thay đổi ở trong vòng foreach() như sau:

PHP
foreach (getRange(PHP_INT_MAX) as $range) {
    echo "Dataset {$range} <br>";
}

Lúc này chúng ta thấy hàm getRange(PHP_INT_MAX) được truyền vào là giá trị số nguyên cực đại mà version PHP hiện tại cung cấp. Thử chạy lại trình duyệt chúng ta sẽ thấy một thông báo lỗi không mấy tươi đẹp như sau: poqriwOYQnW837EF2pKj_errro.PNG

Thông báo trên cho chúng ta biết rằng PHP server của chúng ta đang bị tràn bộ nhớ. Có một giải pháp cho vấn đề này chúng ta có thể nghĩ đến đó là chỉnh sửa trong file php.ini để tăng tham số memory_limit. Nhưng chúng ta hãy tự hỏi xem đó thật sự đã phải là giải pháp tối ưu chưa, rõ ràng chúng ta đang nhận thấy một vấn đề ở đây là chỉ cần một đoạn code nhỏ đã có thể chiếm trọn tài nguyên bộ nhớ của bạn. Điều đó thật sự là một điều không thể chấp nhận được. Vậy giải pháp cho vấn đề này là gì? Chúng ta sẽ cùng nhau tìm hiểu trong phần tiếp theo nhé.

Sử dung PHP Generators

Bây giờ chúng ta thử định nghĩa lại hàm getRange() như trên có sử dụng Generators như sau:

PHP
 <?php

function getRange ($max = 10) {
    for ($i = 1; $i < $max; $i++) {
        yield $i;
    }
}

foreach (getRange(PHP_INT_MAX) as $range) {
    echo "Dataset {$range} <br>";
}

Bây giờ chúng ta hãy để ý đến hàm getRange() chúng ta chỉ lặp qua các giá trị của biến $i rồi trả về kết quả với từ khóa yield. Một cách đơn giản chúng ta có thể hiểu yield có chức năng tương tự như return đều là trả về giá trị của một hàm. Tuy nhiên yield trả về giá trị khi giá trị đó cần sử dụng đến mà không lưu trữ tất cả các giá trị trong bộ nhớ. Sau khi viết lại hàm trên chúng ta có thể chạy lại trình duyệt và xem kết quả. Screenshot from 2016-11-08 09:38:25.png

Đã không còn lỗi tràn bộ nhớ, trong một thời gian cho phép trình duyệt đã hiển thị được kết quả như chúng ta mong muốn. Có thể thấy được bản thân PHP Generators đóng vai trò quan trọng trong tiết kiệm không gian bộ nhớ.

Note: Một lưu ý nhỏ rằng chúng ta chỉ có thể sử dụng generators trong một hàm

Tại sao nên sử dụng Generators

Trong rất nhiều trường hợp chúng ta muốn xử lý một tập dữ liệu rất lớn (ví dụ như dữ liệu từ các file log hệ thống) hoặc muốn tính toán xử lý trên một mảng với vô cùng lớn các phần tử. Rõ ràng chúng ta không hề muốn việc xử lý trên các tập dữ liệu đó chiếm dụng một lượng lớn thậm chí là tất cả bộ nhớ của chúng ta và việc nên làm là tìm cách tiết kiệm bộ nhớ càng nhiều càng tốt. Thay vì phải lưu trữ cả một tập dữ liệu lớn như vậy, chúng ta có thể sử dụng các generators để lấy ra các dữ liệu nào cần thiết.

Returning Keys

Trong một vài trường hợp, dữ liệu của chúng ta thực sự có ý nghĩa khi được biểu diễn dưới dạng key => value và trong khi sử dụng generators chúng ta cũng có thể trả về theo dạng đó bằng cách sau:

PHP
 <?php

function getRange ($max = 10) {
    for ($i = 1; $i < $max; $i++) {
        $value = $i * mt_rand();

        yield $i => $value;
    }
}

Sau đó chúng ta có thể sử dụng cặp giá trị key => value như sau:

PHP
<?php

foreach (getRange(PHP_INT_MAX) as $range => $value) {
    echo "Dataset {$range} has {$value} value<br>";
}

Truyền tham số và trong Generators

Giả sử như chúng ta muốn thêm một vài tham số để quy định cách hoạt động của Generators ví dụ như thêm điều kiện dừng cho Generators chẳng hạn. Chúng ta thực hiện nó như sau:

PHP
 <?php

function getRange ($max = 10) {
    for ($i = 1; $i < $max; $i++) {
        $injected = yield $i;

        if ($injected === 'stop') return;
    }
}

Và để thêm giá trị injected vào trong hàm getRange() chúng ta thực hiện như sau:

PHP
<?php

$generator = getRange(PHP_INT_MAX);

foreach ($generator as $range) {
    if ($range === 10000) {
        $generator->send('stop');
    }

    echo "Dataset {$range} <br>";
}

Note: Chúng ta có thể sử dụng từ khóa return để kết thúc mọi xử lý trong Generators

Kết luận

Generators cung cấp một giải pháp mạnh mẽ cho việc tiết kiệm hiệu năng của server, từ đó khiến cho việc xử lý của server trở nên nhẹ nhàng hơn đồng nghĩa với việc chúng ta không nhất thiết phải có phần cứng tốt mới có thể tăng tốc độ của trang web. Tuy nhiên không nên quá lạm dụng nó vì rất có thể nó sẽ gây ra các vấn đề nghiêm trọng hơn cho hệ thống của bạn nếu sử dụng sai

Tham khảo

Understanding PHP Generators

Generators overview

 

Nguồn:  https://viblo.asia/pham.van.toan/posts/MLzGObXxvpq

51 Plugin jQuery tuyệt vời mà bạn nên sử dụng

Alertify

jQuery có một cộng đồng phát triển rất lớn bởi các lập trình viên. Tuy nhiên, nó có thể trở nên khó khăn để chọn lọc ra cái tốt nhất trong tất cả những gì được phát hành. Đây là lý do tại sao, trong bài viết này, bạn sẽ tìm thấy một bộ sưu tập của 50 plugin jQuery mới và thư viện JavaScript, khi áp dụng nó có thể làm cho trang web của bạn sinh động, chuyên nghiệp và hơn thế nữa.

Hộp thoại (Dialogs)

1. Alertify.js

Alertify (github) là thư viện nhỏ để trình bày cửa sổ hộp thoại đẹp và thông báo. Nó rất dễ dàng để tùy chỉnh với CSS, có một API đơn giản và không phụ thuộc vào thư viện của bên thứ ba.

Alertify

2. jQuery Avgrund

jQuery Avgrund là thêm một giải pháp dialog tuyệt vời. Nó không phải là tính năng phong phú nhưalertify, nhưng nó có yếu tố ứng dụng web của bạn cần. Hộp thoại được thể hiện với một hình ảnh ấn tượng mang lại cho nó vào trọng tâm, trong khi làm mờ và tối nền.

jQuery_Avgrund

Biểu mẫu (Form)

3. iCheck

iCheck là một plugin jQuery giúp nâng cao điều khiển biểu mẫu (form control) của bạn. Nó là hoàn toàn tùy biến, hoạt động trên điện thoại di động và đi kèm với giao diện phẳng, kiểu dáng đẹp. Để sử dụng nó, cần nhúng các js và css vào trang web của bạn, và chuyển đổi tất cả các radio và checkbox của bạn với một vài dòng của jQuery.
iCheck

4. Long Press

Long Press là một jQuery plugin đó giúp giảm bớt các văn bản của ký tự có dấu hoặc hiếm. Giữ một phím trong khi đánh máy sẽ có một thanh gợi ý với các ký tự thay thế mà bạn có thể sử dụng.

Long_Press

5. jQuery File Upload

jQuery File Upload là một widget với nhiều tập tin lựa chọn, hỗ trợ kéo và thả file, thanh tiến trình và hình ảnh xem trước. Nó hỗ trợ cross-domain, chunked, file đang upload có thể tiếp tục lại và phía khách hàng thay có thể resize hình ảnh. Làm việc với bất kỳ nền tảng server-side (PHP, Python, Ruby on Rails, Java, Node.js, Go, v.v.) và rất dễ dàng để nhúng vào ứng dụng của bạn nhờ một số hooks và callbacks.

jQuery_File_Upload

6. Complexify

Complexify là một plugin jQuery nhằm mục đích đánh giá mật khẩu phức tạp. Bạn có thể sử dụng nó trong các hình thức đăng ký để hiển thị tỷ lệ phần trăm cho người sử dụng. Với plugin này bạn có thể buộc mật khẩu để có sự kết hợp của chữ hoa / chữ thường chữ cái, số, ký hiệu đặc biệt và nhiều hơn nữa. Tôi nên lưu ý rằng điều này hoàn toàn là một giải pháp phía khách hàng, có nghĩa là nó có thể bị vô hiệu hoá nếu người dùng tắt Javascript trên trình duyệt. Đây là lý do tại sao bạn cũng nên kiểm tra lại các mật khẩu phức tạp ở phía máy chủ.
Complexify

7.  jQuery Knob

Knob jQuery là một plugin cho chuyển thành phần đầu vào đĩa số jQuery touchable. Nó được xây dựng bằng canvas, và hoàn toàn tùy biến bằng cách thiết lập các thuộc tính dữ liệu trên các yếu tố đầu vào như thế này:
jQuery_Knob

8. Pickadate.js

Pickadate.js là một plugin jQuery tạo ra một widget lựa chọn ngày thân thiện, nhạy và di động. Nó rất dễ sử dụng và có thể được tùy chỉnh với CSS. Để sử dụng nó, nhúng các tập tin js và các css, và gọi các plugin trên phần tử đầu vào của bạn:
Pickadate

9. Chosen

Chosen là một widget mạnh mẽ giúp chuyển đổi một đầu vào chọn vào một danh sách thả xuống tìm kiếm được. Nó rất dễ dàng để tùy chỉnh với CSS, và bạn có thể treo (hook) đang nhờ của riêng bạn để một số callback. Các plugin cũng cập nhật các yếu tố ban đầu (được ẩn) để gửi nó như một phần của biểu mẫu hoặc đọc nó với JS sẽ cung cấp cho bạn kết quả chính xác.
Chosen

10. Fancy Input

Input Fancy (github) là một plugin jQuery mà làm cho nhập vào hoặc xóa văn bản trong một textboox uber tuyệt vời. Nó sử dụng CSS3 hình ảnh động để đạt được hiệu quả.
Fancy_Input

11. Typeahead.js

Typeahead là một thư viện AutoComplete nhanh của twitter. Nó được lấy ý tưởng từ hộp tìm kiếm của twitter.com và có đầy đủ các tính năng. Nó sẽ hiển thị các đề xuất như loại người dùng, và cho thấy những gợi ý đầu như một gợi ý. Các plugin làm việc với dữ liệu hardcoded cũng như dữ liệu từ xa, và tỷ lệ hạn yêu cầu mạng để làm giảm tải.
Typeahead

12. Parsley.js

Parsley.js là một thư viện validate form. Nó cho phép bạn xác nhận các trường dưới hình thức mà không cần phải viết một dòng của JavaScript. Thay vào đó, bạn phải đặt thuộc tính dữ liệu trong các trường nhập mà bạn cần phải được xác nhận, và Parsley làm việc còn lại. Thư viện làm việc với một trong hai jQuery hoặc Zepto và ít hơn 800 dòng dài.

Parsley

Cuộn trang và Parallax

Một trang trang duy nhất với một hiệu ứng cuộn parallax được phổ biến ngày nay. Họ có thể sẽ ở trong trang một thời gian, nó là hoàn hảo cho các trang web với mật độ thông tin ít và rất nhiều hình ảnh – trang web tiếp thị, danh mục đầu tư và nhiều hơn nữa. Các plug-in nhằm mục đích để làm cho họ dễ dàng phát triển hơn.

13. Windows

Windows là một plugin cho phép bạn xây dựng trang web trang duy nhất với các phần full toàn bộ màn hình. Plugin này cung cấp cho bạn callback được gọi là khi các phần mới đi vào hiển thị và xử lý snapping, vì vậy bạn có thể dễ dàng mở rộng nó với các menu điều hướng tùy chỉnh hoặc hơn thế.
Windows

14. Cool Kitten

Cook Kitten là một framework đáp ứng cho các trang web cuộn parallax. Nó tổ chức các phần của trang web của bạn vào slide và sử dụng Waypoints jQuery plugin để phát hiện khi họ đi vào tầm nhìn, tạo ra các menu điều hướng để có được cập nhật.
Cool_Kitten

15. Sticky

Sticky – Chú ý là một plugin jQuery cung cấp cho bạn khả năng thực hiện bất kỳ phần tử trên trang của bạn luôn luôn có thể nhìn thấy khi di chuyển trang. Điều này có thể tiện dụng trong trang web của bạn để trình bày một menu dính hoặc thanh chia sẻ.

Sticky

16. Super Scrollorama

Super Scrollorama là một plugin jQuery cho hình ảnh động cuộn tuyệt vời. Nó cho phép bạn xác định tweens và hình ảnh động được kích hoạt khi một phần tử hiện ra trước mắt, hoặc trên điểm cuộn cụ thể.
Super_Scrollorama

17. Stellar.js

Stellar là một plugin jQuery cung cấp các hiệu ứng cuộn parallax đến bất kỳ phần tử cuộn. Có vẻ đối với bất kỳ nền tảng parallax hoặc các thành phần bên trong phần tử được chỉ định, và dừng lại vị trí khi cuộn phần tử. Bạn có thể kiểm soát tốc độ di chuyển của các yếu tố bằng cách sử dụng dữ liệu thuộc tính cho một hiệu ứng.
Stellar

18. Scrollpath

Scrollpath là một scroll plugin, là khả năng xác định con đường cuộn tùy chỉnh của riêng bạn. Các plugin sử dụng vài cú pháp dùng cho đường vẽ, bằng cách sử dụng phương pháp moveTo, lineTo và vòng cung. Để giúp đỡ nhận được con đường đúng đắn, một lớp phủ vải với đường dẫn có thể được kích hoạt khi khởi tạo các plugin.
Scrollpath

Hiệu ứng chữ

19. Textillate.js

Textillate.js là một plugin jQuery kết hợp sức mạnh của animate.css và lettering.js, để áp dụng hiệu ứng tiên tiến trên thành phần văn bản. Được dựa vào những hình ảnh động CSS3, mà làm cho chúng mịn ngay cả trên thiết bị di động. Có rất nhiều các hiệu ứng để lựa chọn.
Textillate

20. Arctext.js

Arctext.js là một plugin jQuery cho phép bạn sắp xếp thư của một thành phần văn bản dọc theo một đường cong. Dựa trên lettering.js, nó tính toán vòng quay bên phải của mỗi thư và phân phối các chữ cái như nhau trên vòng cung tưởng tượng của bán kính nhất định, và áp dụng các CSS3 quay thích hợp.
Arctext

21. Bacon

Bacon là một plugin jQuery cho phép bạn bọc văn bản xung quanh một đường cong Bút chì hoặc một dòng. Điều này cung cấp cho bạn rất nhiều điều khiển đồ họa, và được minh họa bằng trang chủ của plugin, khả năng đặt dải bacon ở giữa thiết kế của bạn.
Bacon

22. Lettering.js

Lettering.js là một plugin jQuery đơn giản nhưng hiệu quả cho kiểu chữ web đẹp hơn. Những gì nó làm, được chia nội dung văn bản của một phần tử vào kéo dài riêng lẻ với số thứ tự. Dấu # dành cho class, do đó, bạn có thể tạo kiểu mỗi chữ riêng.
Lettering

23. jQuery Shuffle Letters

jQuery Shuffle Letters là một trong những thử nghiệm của chúng tôi. Nó tạo ra một hiệu ứng thú vị mà làm ngẫu nhiên (randomizes) nội dung của một thành phần văn bản.
jQuery_Shuffle_Letters

24. FitText.js

FitText.js là một plugin jQuery cho bơm phồng dành cho web. Nó tự động co giãn các văn bản của một phần tử để mất toàn bộ chiều rộng của container của nó. Điều này làm bố trí nhạy và sắc nét trên mọi thiết bị.
FitText

Lưới (Grids)

25. Gridster.js

Gridster.js là một plugin jQuery cho phép xây dựng bố trí kéo trực quan từ các yếu tố kéo dài nhiều cột. Bạn thậm chí có thể tự động thêm và loại bỏ các yếu tố từ lưới điện. Kéo một yếu tố làm cho các yêu tố khác dãn ra để sắp xếp lại, thật là tuyệt vời cho bố trí sử dụng điều khiển và bảng điều khiển.
 Gridster

26. Freetile

Freetile là một plugin cho jQuery cho phép tổ chức các nội dung trang web trong một bố cục hiệu quả, năng động và đáp ứng. Nó có thể được áp dụng cho một container và nó cố gắng sắp xếp nó là con trong một bố cục mà làm cho sử dụng tối ưu không gian màn hình, bằng cách “đóng gói” chúng và sắp xếp chặt chẽ.
Freetile

27. Stalactite

Stalactite là một thư viện mà gói nội dung trang tùy thuộc vào không gian có sẵn. Phải mất một cách tiếp cận chậm dãi và sắp xếp các yếu tố liên tục với di chuyển của trang, mà làm cho một hiệu ứng thú vị.
Stalactite

Thanh cuộn tùy chỉnh

28. nanoScroller.js

nanoScroller.js là một plugin jQuery cung cấp một cách đơn giản tạo thanh cuộn theo kiểu Mac OS X Lion  cho trang web của bạn. Nó sử dụng đánh dấu HTML tối thiểu và sử dụng di chuyển bản địa. Plugin này hoạt động trên cả iPhone, iPad, và một số máy tính bảng Android.
nanoScroller

29. jQuery Custom Content Scroller

jQuery Custom Content Scroller là một plugin tùy chỉnh thanh cuộn đó là hoàn toàn tùy biến với CSS. Tính năng di chuyển dọc / ngang, hỗ trợ chuột bánh (thông qua các plugin jQuery scroll), các nút di chuyển, cuộn quán tính với nới lỏng, chiều dài cuộn tự động điều chỉnh, thanh cuộn lồng nhau, chức năng scroll-to, user-defined và nhiều hơn nữa.

jQuery_Custom_Content_Scroller

Nền (Backgrounds)

30. Tubular.js

Tubular.js là một plugin jQuery cho phép bạn thiết lập một video YouTube như nền của trang. Chỉ cần gắn nó vào yếu tố wrapper trang của bạn, thiết lập một số tùy chọn.
Tubular

31. Backstretch

Backstretch là một jQuery plugin đơn giản cho phép bạn thêm một thay đổi kích cỡ động, hình nền slideshow có khả năng cho bất kỳ trang nào hoặc thành phần. Nó sẽ căng ra bất kỳ hình ảnh để phù hợp với trang hoặc phần tử ở mức khối, và sẽ tự động thay đổi kích thước như cửa sổ hoặc thay đổi kích thước phần tử. Hình ảnh được lấy sau khi trang của bạn được tải, vì vậy người dùng sẽ không phải chờ đợi cho hình ảnh (thường là lớn) để tải về trước khi sử dụng trang web của bạn. Đối với những người tò mò, và những người không muốn sử dụng bổ sung, đó cũng là một kỹ thuật mà có thể thiết lập một hình nền toàn màn hình hoàn toàn với CSS.
Backstretch

32. Supersized

Supersized là một plugin màn hình nền đầy đủ tiên tiến cho jQuery. Với nó, bạn có thể hiển thị một tập hợp các hình ảnh như một slideshow chiếm toàn bộ chiều rộng và chiều cao của trang. Điều này làm cho nó hoàn hảo cho các trang web nhiếp ảnh, danh mục đầu tư, hoặc những trang sự kiện. Các plugin đi kèm với rất nhiều tùy chọn, hỗ trợ nhiều hiệu ứng chuyển tiếp và có thể được mở rộng với chủ đề tùy chỉnh.
Supersized

Trưng bày và hiệu ứng hình ảnh

33. jQuery TouchTouch

jQuery TouchTouch là một plugin nhằm mục đích đơn giản để sử dụng và làm việc trên các thiết bị di động. Nó sử dụng CSS quá trình chuyển đổi để làm cho hình ảnh động mượt mà hơn, và tải trước hình ảnh động. Ngoài ra, nó có thể được hoàn toàn thiết kế lại bằng cách sửa đổi một tập tin CSS duy nhất.
jQuery_TouchTouch

34. iPicture

iPicture là một jQuery plugin có thể tạo ra tương tác hình ảnh walkthroughs. Nó có thể che phủ chú thích và gợi ý trên đầu trang của hình ảnh, và trình bày nội dung phong phú như HTML, hình ảnh và video. Nó rất dễ dàng để tích hợp vào trang web của bạn và có thể được tùy biến và mở rộng với CSS.
iPicture

35. Adipoli (Một jQuery Plugin hover ảnh)

Adipoli là một plugin jQuery để tạo phong cách hình ảnh hiệu ứng chuyển động. Với nó, bạn có thể biến hình ảnh màu đen và trắng, áp dụng popout, cắt nhỏ và hộp chuyển cảnh.
Adipoli

36. Swipebox

Swipebox là một plugin lightbox hỗ trợ máy tính để bàn, thiết bị di động và trình duyệt máy tính bảng. Nó hiểu được cử chỉ swipe và bàn phím điều hướng.
Swipebox

37. TiltShift.js

TiltShift.js là một plugin gọn gàng mà tái tạo các hiệu ứng tilt-shift (tạo ra đối tượng thực tế để xuất hiện dưới dạng thu nhỏ) sử dụng CSS3 bộ lọc hình ảnh. Tin xấu là điều này chỉ hoạt động trên Chrome và Safari vào lúc này, nhưng hỗ trợ nên dần dần trong các trình duyệt khác.
TiltShift

38. Threesixty.js

Threesixty.js là một plugin jQuery tạo ra tầm nhìn 360 độ có thể kéo được. Bạn phải cung cấp các plugin với đường dẫn đến một tập hợp các hình ảnh của sản phẩm của bạn (bắn từ góc độ khác nhau) và Threesixty.js sẽ lắp ráp chúng thành một cái nhìn tương tác. Bạn có thể kéo hoặc sử dụng các phím mũi tên để khám phá các đối tượng từ góc độ khác nhau.
Threesixty

39. Swipe.js

Swipe.js là một thanh trượt. Điều gì làm cho nó nổi bật là nó nhằm mục đích thiết bị cảm ứng. Điều này cho phép nó không chỉ hiểu những cử chỉ, nhưng cũng phản ứng chạm tương tự như một ứng dụng bản địa. Nó có ranh giới kháng và phòng chống cuộn và tương thích với các trình duyệt từ IE7 trở đi.
Swipe

40. CamanJS

CamanJS là một thư viện xử lý ảnh mạnh mẽ, được xây dựng trên các phần tử canvas. Với nó, bạn có thể thao tác các điểm ảnh của một hình ảnh và đạt được một điều khiển gần như Photoshop. Nếu bạn có thể nhớ, đây là thư viện chúng tôi sử dụng một vài tháng trước để xây dựng một ứng dụng web với các bộ lọc tương tự như Instagram.
CamanJS

41. SpectragramJS

Spectragram là một plugin jQuery nhằm mục đích để làm việc với các API Instagram dễ dàng hơn. Nó có thể lấy feed người sử dụng, hình ảnh phổ biến, hình ảnh với cụm từ cụ thể và nhiều hơn nữa.
SpectragramJS

jQuery Plugins khác

42. jQuery Countdown

jQuery Countdown là một plugin jQuery cho thấy ngày, giờ, phút và giây còn lại cho một sự kiện, và cập nhật thời gian còn lại với mỗi giây một hình ảnh.

jQuery_Countdown

43. List.js

List.js là một thư viện mà nâng cao một danh sách HTML đơn giản với các tính năng tìm kiếm, phân loại và lọc các mục bên trong nó. Bạn có thể thêm, chỉnh sửa và loại bỏ các mục tự động. List.js là độc lập và không phụ thuộc vào jQuery hoặc các thư viện khác để làm việc.
List

44. jQuery PointPoint

jQuery PointPoint là một plugin giúp bạn thu hút sự chú ý của người sử dụng đến một phần cụ thể của trang. Nó thể hiện một mũi tên nhỏ bên cạnh con trỏ chuột. Điều này có thể hữu ích cho trỏ đến các trường bỏ lỡ trong form, các nút cần được nhấn, hoặc lỗi xác nhận rằng cần phải được cuộn vào xem.
jQuery_PointPoint

45. Social Feed

Social Feed là một plugin jQuery mà trình bày một feed của các bản cập nhật công cộng mới nhất trên tài khoản xã hội của bạn. Nó có một thiết kế gọn gàn được xây dựng sử dụng một mẫu, mà bạn có thể dễ dàng tùy chỉnh.
Social_Feed

46. Hook.js

Hook.js là một trải nghiệm thú vị, sẽ đem lại tính năng “kéo để làm mới” mà bạn thường thấy trong các ứng dụng điện thoại di động, vào các trang web. Bạn có thể sử dụng để cập nhật trang web di động của bạn với nội dung mới, lấy bài viết mới và nhiều hơn nữa.
Hook

47. jQuery PercentageLoader

PercentageLoader là một plugin jQuery để hiển thị một widget tiến trình (progress) 1 cách trực quan và hấp dẫn hơn. Nó sử dụng HTML5 canvas cho đồ họa phong phú với chỉ một file javascript cần thiết 10KB (minified), sử dụng các vector chứ không phải là hình ảnh để có thể dễ dàng triển khai tại các kích cỡ khác nhau.
jQuery_PercentageLoader

48. Chart.js

Chart.js là một thư viện biểu đồ mới mà sử dụng phần tử canvas HTML5 và cung cấp callbacks cho IE7 / 8. Thư viện hỗ trợ 6 loại biểu đồ là động và hoàn toàn tùy biến. Chart.js không có bất kỳ phụ thuộc và có kích thước nhỏ hơn 5KB. Nói lời tạm biệt với flash!
Chart

49. Tooltipster

Tooltipster là một plugin jQuery mạnh để hiển thị tooltip. Nó hoạt động trên trình duyệt máy tính để bàn và di động, cung cấp cho bạn toàn quyền kiểm soát nội dung của phần chú thích và hỗ trợ một số chức năng callbacks để bạn có thể móc nó vào ứng dụng của bạn. Phù hợp với HTML5 và có thể style theo ý thích của riêng bạn bằng cách sử dụng CSS.
Tooltipster

50. Toolbar.js

Toolbar.js là một plugin jQuery cho phép bạn hiển thị một menu pop-up gọn gàng. Bạn có thể chọn các hành động và các biểu tượng được thể hiện trong trình đơn và lắng nghe cho các sự kiện. Điều này là hoàn hảo để làm tăng các không gian hạn chế của một giao diện ứng dụng web di động.
Toolbar

51. gmaps.js

Gmaps.js là một thư viện mạnh mẽ cho phép làm việc với Google Maps dễ dàng hơn. Bạn có thể đặt dấu, nghe cho các sự kiện, thiết lập tọa độ, mức độ phóng to và nhiều hơn nữa, tất cả với một cú pháp jQuery. Và tôi khuyên bạn nên dùng nó.
gmaps
Nguồn: Sưu tầm (http://ngothang.com/51-plugin-jquery-tuyet-voi-ma-ban-nen-su-dung/)

30 đoạn biểu thức chính quy mà lập trình viên web nên biết

Biểu thức chính quy - regex

Biểu thức chính quy - regex

Biểu thức chính quy (hay regex) là một công cụ mạnh mẽ mà mỗi nhà phát triển nên biết. Nó có thể khớp với một chuỗi các ký tự dựa trên các thông số rất phức tạp mà có thể giúp bạn tiết kiệm rất nhiều thời gian khi xây dựng các trang web động.

Dù các nhà phát triển Web phải đối mặt với nhiều nhiệm vụ khác nhau hơn so với các nhà phát triển phần mềm, nhưng đa số trong đó vẫn có cùng mã nền tảng. Biểu thức chính quy hơi khó học lúc đầu, nhưng có thể rất mạnh mẽ khi được sử dụng một cách chính xác.

Phần khó khăn nhất là việc tìm hiểu cú pháp và học cách để viết mã regex của riêng bạn từ đầu. Để tiết kiệm thời gian, tôi đã chọn ra 30 đoạn mã regex khác nhau mà bạn có thể sử dụng trong các dự án của bạn. Và kể từ khi regex không giới hạn cho một ngôn ngữ cụ thể, bạn có thể áp dụng những đoạn dưới đây vào bất cứ ngôn ngữ nào từ Javascript đến PHP hoặc Python.

1. Độ mạnh của mật khẩu

^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$
Kiểm tra độ mạnh của một mật khẩu thường là chủ quan nên không có câu trả lời chính xác tuyệt đối. Nhưng tôi cảm thấy đoạn regex này là một điểm khởi đầu tuyệt vời nếu bạn không muốn phải viết riêng hàm kiểm tra độ mạnh mật khẩu của bạn từ đầu.

2. Mã màu Hex

\#([a-fA-F]|[0-9]){3, 6}

Mã màu hex rất phố biến trong lĩnh vực phát triển web. Đoạn regex này có thể được sử dụng để lấy mã hex phù hợp từ chuỗi bất kỳ cho bất cứ mục đích nào.

3. Xác thực địa chỉ Email

/[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]{2,4}/igm

Một trong những nhiệm vụ phổ biến nhất đối với một nhà phát triển là kiểm tra một chuỗi có phải là một địa chỉ Email hay không. Đối với PHP, các bạn có thể sử dụng hàm filter_var: filter_var($email, FILTER_VALIDATE_EMAIL)

4. Địa chỉ IPv4

/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/

Tương tự như một địa chỉ email là địa chỉ IP – được sử dụng để xác định một máy tính cụ thể truy cập Internet. Biểu thức chính quy này sẽ kiểm tra một chuỗi xem nó có tuân theo cú pháp địa chỉ IPv4 hay không.

5. Địa chỉ IPv6

(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))

Hoặc có thể bạn sẽ muốn kiểm tra một địa chỉ theo cú pháp IPv6 mới hơn với đoạn regex nâng cao hơn này. Sự khác biệt là rất nhỏ mặc dù nó quan trọng trong quá trình phát triển.

6. Dấu phân cách hàng nghìn

/\d{1,3}(?=(\d{3})+(?!\d))/g

Mã regex này hoạt động trên bất kỳ số nào và sẽ áp dụng bất cứ dấu phân cách nào bạn chọn cho mỗi chữ số thứ ba phân tách thành hàng ngàn, hàng triệu,…

7. Thêm HTTP vào trước liên kết

if (!s.match(/^[a-zA-Z]+:\/\//))
{
    s = 'http://' + s;
}

Cho dù bạn đang làm việc trong JavaScript, Ruby hay PHP, biểu thức này có thể tỏ ra rất hữu ích. Nó sẽ kiểm tra bất kỳ chuỗi URL nào để xem nếu nó có tiền tố HTTP/HTTPS hay không, và nếu không, thêm vào trước chuỗi đó cho phù hợp.

8. Lấy tên miền từ URL

/https?:\/\/(?:[-\w]+\.)?([-\w]+)\.\w+(?:\.\w+)?\/?.*/i

Mỗi tên miền trang web đều chứa giao thức ở đầu (HTTP hoặc HTTPS) và đôi khi có tên miền phụ với đường dẫn trang bổ sung. Bạn có thể sử dụng đoạn regex này để cắt qua tất cả những điều đó và chỉ trả lại tên miền.

9. Sắp xếp các từ khóa bằng cách đếm số từ

^[^\s]*$        matches exactly 1-word keyword
^[^\s]*\s[^\s]*$    matches exactly 2-word keyword
^[^\s]*\s[^\s]*     matches keywords of at least 2 words (2 and more)
^([^\s]*\s){2}[^\s]*$    matches exactly 3-word keyword
^([^\s]*\s){4}[^\s]*$    matches 5-words-and-more keywords (longtail)

Những ai dùng Google Analytics và Webmaster Tools sẽ thực sự thích biểu thức chính quy này. Nó có thể sắp xếp các từ khoá dựa trên số các từ được sử dụng trong một tìm kiếm.

Đây có thể là số lượng cụ thể (tức là chỉ có 5 từ) hoặc nó có thể phù hợp với một loạt các từ (tức là 2 hoặc nhiều hơn). Khi được sử dụng để sắp xếp và phân tích dữ liệu, nó là một trong những biểu thức chính quy mạnh mẽ.

10. Tìm một chuỗi Base64 hợp lệ trong PHP

\?php[ \t]eval\(base64_decode\(\'(([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?){1}\'\)\)\;

Nếu bạn là một nhà phát triển PHP thì đôi khi bạn có thể cần phân tích qua code để tìm kiếm các đối tượng nhị phân đã mã hóa Base64 (ví dụ như tìm shell được giấu trong một tập tin PHP chẳng hạn). Đoạn regex này có thể áp dụng với tất cả code PHP và sẽ kiểm tra bất cứ chuỗi Base64 nào đang tồn tại.

11. Xác thực số điện thoại

^\+?\d{1,3}?[- .]?\(?(?:\d{2,3})\)?[- .]?\d\d\d[- .]?\d\d\d\d$

Ngắn gọn, ngọt ngào và đi thẳng vào vấn đề. Đoạn regex này sẽ xác thực bất cứ cú pháp số điện thoại nào dựa trên phong cách số điện thoại Mỹ.

Điều này có thể biến thành một chủ đề khá phức tạp, tôi khuyên bạn nên đọc lướt qua chủ đề stack này cho câu trả lời chi tiết hơn.

12. Khoảng trắng ở đầu và cuối

^[ \s]+|[ \s]+$

Sử dụng đoạn mã này để lấy ra khoảng trắng ở đầu/cuối từ một chuỗi. Đây có thể không phải là một việc lớn, nhưng đôi khi nó ảnh hưởng đến đầu ra khi lấy kết quả ra từ một cơ sở dữ liệu hoặc áp dụng vào mã hóa tài liệu.

13. Lấy nguồn ảnh

\< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\'\ >]*)

Nếu vì một số lý do nào đó mà bạn cần lấy ra một nguồn ảnh trực tiếp từ HTML thì đoạn mã này là giải pháp hoàn hảo. Mặc dù nó có thể chạy trơn tru trên Backend, các nhà phát triển JS nên dựa vào phương thức .attr() của jQuery cho Frontend.

14. Xác thực ngày trong định dạng DD/MM/YYYY

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$

Các ngày khó khăn vì chúng có thể xuất hiện dưới dạng văn bản + số, hoặc chỉ là số với các định dạng khác nhau. PHP có một hàm ngày tuyệt vời nhưng điều này không phải luôn là lựa chọn tốt nhất khi lấy ra từ một chuỗi thô (raw). Cân nhắc việc thay thế bằng cách sử dụng biểu thức chính quy này cho các cú pháp ngày cụ thể.

15. Khớp ID Video Youtube

/https?:\/\/(?:youtu\.be\/|(?:[a-z]{2,3}\.)?youtube\.com\/watch(?:\?|#\!)v=)([\w-]{11}).*/gi

Youtube đã giữ cấu trúc URL giống nhau trong nhiều năm chỉ bởi nó hoạt động. Đây cũng là trang chia sẻ video phổ biến nhất trên web, vì thế các video Youtube có xu hướng điều phối lưu lượng truy cập nhiều nhất.

Nếu bạn cần lấy ra một ID video Youtube từ một URL thì đoạn regex này là hoàn hảo và hoạt động tốt với tất cả các biến thể của cấu trúc URL Youtube.

16. Xác thực ISBN

/\b(?:ISBN(?:: ?| ))?((?:97[89])?\d{9}[\dx])\b/i

Sách được in theo một hệ thống số gọi là ISBN. Điều này có thể lấy khá khó khăn khi bạn xem xét sự khác biệt giữa ISBN-10 và ISBN-13.

Tuy nhiên đoạn regex đáng kinh ngạc này cho phép bạn để xác nhận một số ISBN và kiểm tra xem nó là ISBN10 hay 13. Tất cả các mã được viết bằng PHP vì vậy điều này có thể tỏ ra đặc biệt hữu ích cho các nhà phát triển web.

17. Kiểm tra mã bưu điện

^\d{5}(?:[-\s]\d{4})?$

Tác giả của đoạn regex này không chỉ chia sẻ nó miễn phí mà còn dành thời gian để giải thích nó. Bạn sẽ thấy nó hữu ích cho dù bạn đang khớp một mã bưu điện loại 5 chữ số hay phiên bản dài 9 chữ số dài hơn.

Hãy nhớ rằng nó chủ yếu dành cho hệ thống mã bưu điện của Mỹ nên có thể bạn sẽ cần điều chỉnh cho các quốc gia khác.

18. Tên người dùng Twitter hợp lệ

/@([A-Za-z0-9_]{1,15})/

Đây là một đoạn mã regex rất nhỏ để khớp tên người dùng Twitter tìm thấy trong một chuỗi. Nó kiểm tra dựa trên cú pháp đề cập (@mention).

19. Số thẻ tín dụng

^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$

Chứng thực số thẻ tín dụng thường bắt buộc một nền tảng máy chủ an toàn. Nhưng regex có thể được sử dụng cho các yêu cầu tối thiểu của một số thẻ tín dụng điển hình.

20. Tìm thuộc tính CSS

^\s*[a-zA-Z\-]+\s*[:]{1}\s[a-zA-Z0-9\s.#]+[;]{1}

Có thể rất hiếm để chạy regex trên CSS nhưng nó không phải là một tình huống lạ.

Đoạn mã này có thể được sử dụng để lấy ra mọi thuộc tính và giá trị CSS khớp từ selector cụ thể. Nó có thể được sử dụng cho bất kỳ lý do nào, ví dụ như loại bỏ thuộc tính trùng lặp.

21. Loại bỏ chú thích HTML

<!--(.*?)-->

Nếu vì bất cứ lý do nào mà bạn cần phải loại bỏ tất cả các chú thích từ một khối HTML thì đây là mã regex cần dùng. Bạn sẽ tìm thấy một ví dụ PHP sử dụng preg_replace.

22. URL trang cá nhân Facebook

/(?:http:\/\/)?(?:www\.)?facebook\.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[\w\-]*\/)*([\w\-]*)/

Facebook rất phổ biến và có nhiều sự sắp đặt URL khác nhau. Trong một tình huống mà bạn đang lấy URL hồ sơ từ người sử dụng thì đoạn regex này có thể hữu ích để phân tích chuỗi và xác nhận rằng chúng có cấu trúc đúng. Đoạn này có thể làm chính xác điều đó và nó hoàn hảo cho tất cả các kiểu liên kết FB.

23. Kiểm tra phiên bản Internet Explorer

^.*MSIE [5-8](?:\.[0-9]+)?(?!.*Trident\/[5-9]\.0).*$

Trình duyệt IE vẫn đang có thị phần người dùng lớn và các nhà phát triển thường phải kiểm tra phiên bản IE để xử lý tính tương thích của trang web.

Đoạn này có thể được sử dụng trong JavaScript để kiểm tra phiên bản của Internet Explorer (5-11) đang được sử dụng dựa trên chuỗi User-Agent.

24. Bóc tách giá

/(\$[0-9,]+(\.[0-9]{2})?)/

Giá cả đi kèm trong một loạt các định dạng có chứa số thập phân, dấu phẩy và ký hiệu tiền tệ. Biểu thức này có thể kiểm tra tất cả các định dạng khác nhau để lấy ra một mức giá từ bất kỳ chuỗi nào.

25. Phân tích tiêu đề Email

/\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,6}\b/i

Với một dòng code này bạn có thể phân tích thông qua một tiêu đề email để lấy ra thông tin “to” từ tiêu đề. Nó có thể được sử dụng song song với nhiều email liên kết với nhau.

26. Khớp một loại tập tin cụ thể

/^(.*\.(?!(htm|html|class|js)$))?[^.]*$/i

Khi bạn đang làm việc với các định dạng tập tin khác nhau như .xml, .html và .js, nó có thể giúp kiểm tra các tập tin cả nội bộ (local) và được tải lên bởi người dùng. Đoạn này lấy ra một phần mở rộng tập tin để kiểm tra xem nó có giá trị nằm trong một danh sách các phần mở rộng hợp lệ hay không.

27. Khớp một chuỗi URL

/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi

Đoạn này có thể sử dụng cho cả chuỗi HTTP và HTTPS để kiểm tra xem nó có khớp với cú pháp tên miền mức cao nhất (TLD) hay không. Cũng có một phiên bản đơn giản hơn đoạn này sử dụng RegExp của JavaScript.

28. Thêm rel=”nofollow” vào các liên kết

(<a\s*(?!.*\brel=)[^>]*)(href="https?://)((?!(?:(?:www\.)?'.implode('|(?:www\.)?', $follow_list).'))[^"]+)"((?!.*\brel=)[^>]*)(?:[^>]*)>

Nếu bạn đang làm việc với hàng loạt mã HTML có thể nó thật khủng khiếp khi phải làm thủ công các nhiệm vụ lặp đi lặp lại. Biểu thức chính quy là hoàn hảo cho công việc này và họ sẽ tiết kiệm được rất nhiều thời gian.

Đoạn regex này có thể lấy ra tất cả liên kết từ một khối HTML và thêm thuộc tính rel=”nofollow” vào mỗi phần tử.

29. Khớp Media Query

/@media([^{]+)\{([\s\S]+?})\s*}/g

Chia tách các Media Query CSS vào từng tham số và thuộc tính của chúng. Điều này có thể giúp bạn phân tích CSS bên ngoài với sự tập trung trực tiếp hơn vào cách mà code hoạt động.

30. Cú pháp tìm kiếm Google

/([+-]?(?:'.+?'|".+?"|[^+\- ]{1}[^ ]*))/g

Bạn có thể xây dựng mã regex của riêng bạn cho các thao tác tìm kiếm nội dung bằng cách sử dụng cú pháp độc quyền của Google. Các dấu cộng (+) biểu thị các từ khóa bổ sung và dấu trừ (-) biểu thị rằng nên bỏ qua và loại bỏ khỏi kết quả.

Đó là một đoạn khá phức tạp nhưng được sử dụng đúng cách thì nó có thể cung cấp một cơ sở cho việc xây dựng thuật toán tìm kiếm của riêng bạn.

Dịch bởi Juno_okyo theo Hongkiat.com.

Làm sao để cho website hiển thị Responsive?

Trong lúc mình có gắn cái khung nhận ý tưởng viết bài theo yêu cầu có độc giả, thì trong đó có đến 7% các yêu cầu viết bài liên quan đến việc cho giao diện website hiển thị theo dạng Responsive. Từ đó mình nhận thấy có rất nhiều độc giả ở đây vẫn chưa nắm được cách một giao diện website có thể hiển thị Responsive là như thế nào, nên trong bài này mình sẽ giải thích và hướng dẫn các bạn áp dụng Responsive vào website của mình.

Yêu cầu kiến thức

Trong bài này mình chỉ nói qua Responsive nên các kiến thức cơ bản mình sẽ không nói qua, do vậy bạn cần chuẩn bị kiến thức HTML và CSS căn bản để có thể hiểu được trọn vẹn.

Responsive là gì?

responsive

Responsive là một tính từ để chỉ một website có thể hiển thị tương thích trên mọi kích thước hiển thị của trình duyệt. Ví dụ thông thường nếu giao diện website đặt một chiều rộng cố định là 800px thì chắc chắn nếu xem ở trình duyệt điện thoại với chiều ngang chỉ từ 320px – 420px sẽ không hiển thị hết được.

Có thể bạn cho rằng chúng ta có thể gán giá trị chiều rộng từ tuyệt đối (800px) sang kiểu giá trị tương đối là phần trăm (%) thì có thể sẽ hiển thị tương ứng được. Điều này cũng đúng, nhưng giả sử website bạn có 3 cột trên một hàng thì liệu rằng trên trình duyệt di động, mắt thường của con người có thể thấy chi tiết mà không cần phóng to màn hình hay không? Do vậy, chúng ta sẽ muốn giao diện sẽ được hiển thị khác đi một xíu trên trình duyệt nhỏ hơn các trình duyệt thông thường, và Responsive là giải pháp làm việc này nhanh nhất và dễ nhất.

Responsive hoạt động bằng cách chúng ta sẽ viết CSS để cho trình duyệt hiểu và thực thi nó trên các kích thước trình duyệt nhất định. Chẳng hạn bạn có thể thiết lập một đoạn CSS nào đó chỉ áp dụng cho các trình duyệt có kích thước chiều rộng tối đa là 320px (điện thoại). Điều này có nghĩa là Responsive là một kỹ thuật thiết kế được xử lý từ client-side chứ không hề gửi truy vấn nào đến máy chủ để xử lý (server-side) nên nó có một nhược điểm là làm trình duyệt của bạn phải mất nhiều thời gian hơn để xử lý CSS.

Vậy làm thế nào để áp dụng Responsive lên giao diện website?

Để cho website của bạn trở thành Responsive, chúng ta có hai bước như sau:

Bước 1. Khai báo meta viewport

Trước tiên bạn cần đặt thẻ này vào cặp <head> trên trong mã HTML của website.

01
<meta name="viewport" content="width=device-width, initial-scale=1">

meta viewport nghĩa là một thẻ thiết lập cho trình duyệt hiển thị tương ứng với kích thước màn hình. Chẳng hạn như ví dụ trên, có nghĩa là bạn sẽ thiết lập trình duyệt hiển thị cố định và tương ứng trên tất cả các thiết bị dựa vào chiều rộng của thiết bị (device-width) và không cho phép người dùng phóng to (thiết lập initial-scale với giá trị cố định là 1). Đây là thẻ mình khuyến khích bạn sử dụng cho toàn bộ các dự án Responsive.

Ngoài ra thẻ meta viewport này còn có các giá trị như:

  • width: thiết lập chiều rộng của viewport.
  • device-width: Chiều rộng cố định của thiết bị.
  • height: thiết lập chiều cao của viewport.
  • device-height: Chiều cao cố định của thiết bị.
  • initial-scale: Thiết lập mức phóng to lúc ban đầu, giá trị là 1 nghĩa là không phóng to, và khi giá trị được thiết lập thì người dùng không thể phóng to vì nó đã được cố định.
  • minimum-scale: Mức phóng to tối thiểu của thiết bị với trình duyệt.
  • maximum-scale: Mức phóng to tối đa của thiết bị với trình duyệt.
  • user-scalable: Cho phép người dùng phóng to, giá trị là yes hoặc no.

Tại sao lại sử dụng meta viewport? Hãy cứ xem ví dụ của một nội dung có meta viewport và không có meta viewport nhé.

responsive-without-metaviewport

responsive-with-metaviewport

Bước 2. Viết CSS cho chiều rộng của thiết bị

Ngay tại bước này, chúng ta sẽ tiến hành viết CSS tương ứng cho từng mức chiều rộng hoặc chiều cao của thiết bị, thường thì chúng ta chỉ viết dựa theo chiều rộng và được tính trên đơn vị là pixel. Nhiều người có thể tính dựa trên đơn vị là em, rem, DPI, phần trăm,…nhưng nếu bạn là người mới thì cứ dùng pixel cho dễ nhé.

Để viết CSS tương ứng cho chiều rộng của trình duyệt, chúng ta sẽ sử dụng thẻ truy vấn @media trong CSS3 (@media query) như sau:

01
02
03
04
05
06
07
08
09
10
body {
   background: #fff;
   color: 333;
}
@media all and (max-width: 320px) {
   body {
      background: #e7e7e7;
   }
}

Điều này có nghĩa là website của bạn mặc định sẽ có nền (background) màu trắng, nhưng khi thu nhỏ trình duyệt xuống còn từ 0px đến 320px thì nó sẽ có nền là màu xám với mã màu #e7e7e7.

Trong đoạn trên, đoạn @media all and (max-width: 320px) nghĩa là thiết lập breakpoint cho toàn bộ thiết bị (all – media type) và có chiều rộng cố định tối đa là 320px (max-width – media features), 320px tương ứng với kích thước chiều rộng của màn hình iPhone. Và các đoạn CSS nằm bên trong query này sẽ được thực thi khi co màn trình duyệt lại đúng với kích thước từ 320px trở xuống.

Ngoài ra, bạn cũng có thể thiết lập thêm nhiều điều kiện như:

01
@media only screen and (min-width: 320px) and (max-width: 860px) {...}

Tức là query này sẽ chỉ áp dụng cho màn hình desktop, máy tính bảng, smartphone và có kích thước màn hình tối thiểu là 320px nhưng nhỏ hơn 860px.

Về các giá trị của media type và media features trong @media query, bạn có thể tham khảo thêm tại W3Schools cho đầy đủ hơn nhưng thông thường ta cứ viết CSS cho media type là screen và media features chỉ quanh quẩn min-width, max-width mà thôi.

Làm sao để kiểm tra Responsive?

Khi làm việc, bạn có thể kiểm tra Responsive bằng cách co giãn kích thước trình duyệt thủ công nhưng nó không được “thông minh” cho lắm. Mà mình sẽ khuyến khích các bạn sử dụng các công cụ hỗ trợ để kiểm tra, một trong những công cụ kiểm tra Responsive mà mình thích nhất đó là Resizer, rất dễ sử dụng và gọn nhẹ. Hãy xem cách sử dụng bằng ảnh dưới:

resizer

Danh sách các kích thước màn hình thiết bị

Khi viết CSS cho giao diện Responsive, việc quan trọng nhất là bạn phải nắm được kích thước màn hình của các loại điện thoại thông dụng để có thể viết CSS được như ý và chắc chắn nó hoạt động tốt trên nhiều thiết bị, nhất là các thiết bị thông dụng.

Bạn có thể tham khảo các size chiều rộng của các thiết bị tại đây, nhưng đa phần một dự án bạn chỉ cần tạo các breakpoint CSS như sau:

  • max-width: 320px (điện thoại di động, hiển thị chiều dọc)
  • max-width: 480px (điện thoại di động, hiển thị chiều ngang)
  • max-width: 600px (máy tính bảng, hiển thị chiều dọc)
  • max-width: 800px (máy tính bảng, hiển thị chiều ngang)
  • max-width: 768px (máy tính bảng loại to, hiển thị chiều dọc)
  • max-width: 1024px (máy tính bảng loại to, hiển thị chiều ngang)
  • min-width: 1025px (từ size này trở lên là danh cho desktop thông thường).

Ví dụ cấu trúc CSS của một giao diện Responsive thông thường

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
/* Các CSS này dành cho toàn bộ website và desktop */
body {
   background: #fff;
   color: 333;
}
/* Dành cho điện thoại */
@media all and (max-width: 480px) {
}
/* Dành cho máy tính bảng */
@media all and (max-width: 1024px) {
}

Khái niệm Mobile-First

mobile-first

Khi nói về làm giao diện Responsive thì bạn cũng cần nên biết qua khái niệm Mobile-first vì nó sẽ giúp quy trình làm giao diện Responsive của bạn nhanh hơn rất nhiều. Mobile-first nghĩa là tên một quy trình thiết kế mà chúng ta sẽ bắt đầu thiết kế cho giao diện ở điện thoại trước và sử dụng điện thoại làm nền tảng ban đầu, sau đó sẽ đến các thiết bị khác như máy tính bảng, desktop, retina,…

Đặc điểm của quy trình mobile-first là chúng ta chỉ sử dụng media features là min-width chứ không sử dụng cái gì khác. Mình có ví dụ sau:

01
02
03
04
05
06
@media all and (min-width: 320px) {
body {
   background: #e7e7e7;
   color: #333333;
}
}

Điều này có nghĩa là các thiết bị có chiều rộng tối thiểu là 320px sẽ áp dụng các CSS bên trong, dĩ nhiên nó cũng sẽ bao gồm luôn giao diện máy tính bảng, desktop,…

Và khi sử dụng quy trình mobile-first thì CSS của bạn sẽ có cấu trúc thế này:

01
02
03
04
05
06
07
08
09
10
11
/* Dành cho điện thoại */
@media all and (min-width: 320px) {...<span style="line-height: 1.5;">}</span>
/* Dành cho máy tính bảng chiều dọc */
@media all and (min-width: 600px) {...}
/* Dành cho máy tính bảng chiều ngang */
@media all and (min-width: 1024px) {...}
/* Dành cho màn hình desktop */
@media all and (min-width: 1280px) {...}

Thế tại sao lại nên sử dụng mobile-first? Có rất nhiều lý do như:

  • Tập trung tối đa vào giao diện ở điện thoại vì xu hướng sử dụng điện thoại ngày càng tăng.
  • Tránh việc viết lại CSS, vì một CSS ở điện thoại có thể được tái sử dụng trên desktop. Nhưng nếu bạn viết CSS trên desktop trước thì ở giao diện điện thoại bạn vẫn phải viết lại nếu muốn tùy biến.
  • Dễ dàng trong việc triển khai và quản lý, nâng cấp sau này.
  • Tránh các lỗi hiển thị trên điện thoại do việc tùy biến từ CSS ở desktop.
  • Và nhiều lý do khác mà chỉ khi làm mới biết.

Một số kiến thức cần biết khi viết CSS Responsive

  • Ngoài đơn vị của breakpoint là px, thì các đơn vị đo chiều dài trong website nên là phần trăm. Hay nói đúng hơn là sử dụng đơn vị tương đối.
  • Nên sử dụng max-width thay vì width để tránh cố định chiều rộng.
  • Sử dụng display: none cho các thành phần cần ẩn đi ở từng thiết bị mà bạn muốn ẩn. Và display: block ở các thiết bị cần hiển thị ra.
  • Sử dụng tùy chọn !important nếu cần đè viết đè CSS.

Cơ bản là chỉ vậy thôi, thực ra Responsive thì chỉ căng nhất là phần làm menu nhưng khi thực hành bạn sẽ nắm rõ chi tiết hơn.

Lời kết

Trong bài này mình đã nói chi tiết qua khái niệm Responsive và cách triển khai một giao diện Responsive là như thế nào. Bây giờ bạn có thể thực hành bằng cách tạo một tập tin HTML đơn giản, rồi khai báo thẻ meta viewport rồi thử viết CSS để nắm rõ hơn về cách hoạt động của nó nhé.

Hy vọng trong tương lai, mình sẽ có một tutorial làm một giao diện website HTML dạng Responsive hoàn chỉnh để bạn có thể tự thực hành. Và khi mà bạn đã nắm được cách làm một giao diện Responsive rồi thì việc làm theme WordPress hỗ trợ Responsive không còn quá khó khăn nữa. Mọi thứ sẽ được mình trình bày từ từ.

Nguồn Thachpham.com