Gradient trong CSS3

Tính năng Gradient trong CSS3 cho phép bạn tạo gradient từ màu này sang màu khác mà không cần sử dụng bất kỳ hình ảnh nào.

Tính năng Gradient trong CSS3 cung cấp một giải pháp linh hoạt để tạo ra các hiệu ứng chuyển tiếp mượt mà giữa hai hoặc nhiều màu. Trước kia, để đạt được hiệu ứng như vậy, chúng ta phải sử dụng hình ảnh và Photoshop để chỉnh sửa.

Sử dụng tính năng Gradient, bạn có thể giảm thời gian tải xuống và tiết kiệm băng thông.

Các phần tử có độ dốc có thể mở rộng, thu nhỏ đến mức độ nào mà không làm giảm chất lượng, đồng thời kết xuất sẽ hiển thị nhanh hơn nhiều vì nó được tạo bởi trình duyệt.

Gradients có sẵn trong hai kiểu: linear radial

Tạo Linear Gradient trong CSS3

Để tạo một Linear Gradient (Gradient tuyến tính), bạn phải xác định ít nhất hai màu. Tuy nhiên, để tạo ra các hiệu ứng gradient phức tạp hơn, bằng cách xác định nhiều màu hơn, thêm các điểm dừng.

Các màu này sẽ chuyển tiếp mượt mà giữa các màu. Bạn cũng có thể đặt:

  • Điểm bắt đầu
  • Và hướng (hoặc góc) mà hiệu ứng gradient được áp dụng.

Cú pháp cơ bản của việc tạo các linear gradient:

linear-gradient(huongHieuUng, mau-1, mau-2, mau-3 ...)

Tạo linear Gradient từ Top đến Bottom

Ví dụ sau sẽ tạo một linear gradient từ Top đến Bottom. Đây là mặc định.

CSS:

.gradient {
    /* Các trình duyệt trở về trước không hỗ trợ */
    background: blue;

    /* Cú pháp chuẩn */
    background: linear-gradient(blue, green);

    /* Dành cho Safari 5.1 to 6.0 */
    background: -webkit-linear-gradient(blue, green);

    /* Dành cho IE 10 */
    background: -ms-linear-gradient(blue, green);
}

Kết quả:

Tạo linear Gradient từ Left sang Right

Ví dụ sau sẽ tạo một linear gradient từ trái sang phải.

CSS:

.gradient {
    /* Các trình duyệt trở về trước không hỗ trợ */
    background: blue;

    /* Cú pháp chuẩn */
    background: linear-gradient(left to right, blue, green);

    /* Dành cho Safari 5.1 to 6.0 */
    background: -webkit-linear-gradient(left, blue, green);

    /* Dành cho IE 10 */
    background: -ms-linear-gradient(left, blue, green);
}

Kết quả:

Tạo linear Gradient theo hướng chéo

Bạn cũng có thể tạo một linear gradient theo hướng chéo. Ví dụ sau sẽ tạo một linear gradient từ góc dưới bên trái đến góc trên cùng bên phải của hộp phần tử.

CSS:

.gradient {
    /* Các trình duyệt trở về trước không hỗ trợ */
    background: blue;

    /* Cú pháp chuẩn */
    background: linear-gradient(to top right, blue, green);

    /* Dành cho Safari 5.1 to 6.0 */
    background: -webkit-linear-gradient(bottom left, blue, green);

    /* Dành cho IE 10 */
    background: -ms-linear-gradient(bottom left, blue, green);
}

Kết quả:

Thiết lập hướng của Linear Gradient bằng cách sử dụng góc

Nếu bạn muốn kiểm soát nhiều hơn hướng của gradient, bạn có thể đặt hướng bằng góc, thay vì các từ khóa được xác định trước.

Góc 0deg tạo ra một gradient từ dưới lên trên và các góc dương thể hiện sự quay theo chiều kim đồng hồ.

Góc 90deg tạo ra một gradient từ trái sang phải.

Cú pháp cơ bản của việc tạo các linear gradient bằng cách sử dụng góc như sau:

linear-gradient(gocGradient, mau-1, mau-2, ...)

Ví dụ sau sẽ tạo ra một linear gradient từ trái sang phải bằng cách sử dụng góc.

.gradient {
    /* Các trình duyệt trở về trước không hỗ trợ */
    background: blue;

    /* Cú pháp chuẩn */
    background: linear-gradient(90deg, blue, green);

    /* Dành cho Safari 5.1 to 6.0 */
    background: -webkit-linear-gradient(0deg, blue, green);

    /* Dành cho IE 10 */
    background: -ms-linear-gradient(0deg, blue, green);
}

Kết quả:

Tạo Linear Gradient bằng cách sử dụng nhiều màu sắc

Bạn cũng có thể tạo gradient cho nhiều hơn hai màu. Ví dụ sau đây sẽ chỉ cho bạn cách tạo một gradient tuyến tính bằng cách sử dụng nhiều điểm dừng màu. Tất cả các màu cách đều nhau.

CSS:

.gradient {

.gradient {
    /* Các trình duyệt trở về trước không hỗ trợ */
    background: blue;

    /* Cú pháp chuẩn */
    background: linear-gradient(red, blue, lime);

    /* Dành cho Safari 5.1 to 6.0 */
    background: -webkit-linear-gradient(red, blue, lime);

    /* Dành cho IE 10 */
    background: -ms-linear-gradient(red, blue, lime);

}

Kết quả:

Tạo Gradient với điểm dừng màu

Điểm dừng màu là các điểm dọc theo đường chuyển màu sẽ có một màu cụ thể tại vị trí đó.

Vị trí của điểm dừng màu có thể được chỉ định dưới dạng phần trăm hoặc độ dài tuyệt đối. Bạn có thể chỉ định bao nhiêu điểm dừng màu tùy thích để đạt được hiệu ứng mong muốn.

Ví dụ sau đây thì mình sẽ tạo gradient có màu đỏ với khoảng 50%.

.gradient {
    /* Các trình duyệt trở về trước không hỗ trợ */
    background: blue;

    /* Cú pháp chuẩn */
    background: linear-gradient(red 50%, blue, lime);

    /* Dành cho Safari 5.1 to 6.0 */
    background: -webkit-linear-gradient(red 50%, blue, lime);

    /* Dành cho IE 10 */
    background: -ms-linear-gradient(red 50%, blue, lime);
}

Kết quả:

Lưu ý: Trong khi đặt vị trí điểm dừng màu dưới dạng phần trăm, 0% đại diện cho điểm bắt đầu, trong khi 100% đại diện cho điểm kết thúc. Tuy nhiên, bạn có thể sử dụng các giá trị nằm ngoài phạm vi đó, tức là trước 0% hoặc sau 100% để có được hiệu ứng bạn muốn.

Lặp lại Linear Gradient

Bạn có thể lặp lại Linear Gradient bằng cách sử dụng hàm repeating-linear-gradient().

CSS:

.gradient {
    /* Các trình duyệt trở về trước không hỗ trợ */
    background: blue;

    /* Cú pháp chuẩn */
    background: repeating-linear-gradient(red, white 10%, lime 20%);

    /* Dành cho Safari 5.1 to 6.0 */
    background: -webkit-repeating-linear-gradient(red, white 10%, lime 20%);

    /* Dành cho IE 10 */
    background: -ms-repeating-linear-gradient(red, white 10%, lime 20%);
}

Kết quả:

Tạo Radial Gradient trong CSS3

Trong một radial gradient, màu xuất hiện từ một điểm duy nhất và trải đều ra bên ngoài theo hình tròn hoặc hình elip thay vì mờ dần từ màu này sang màu khác theo một hướng như với linear gradient.

Cú pháp cơ bản của việc tạo một radial gradient có thể được đưa ra với:

Hằng số Ma thuật trong PHP

Trong bài hướng dẫn tự học Lập trình này, bạn sẽ học cách làm việc với các Hằng số Ma thuật trong PHP (Magic Constant).

Trong bài hướng dẫn tự học Lập trình này, bạn sẽ học cách làm việc với các Hằng số Ma thuật trong PHP (Magic Constant).

Hằng số Ma thuật trong PHP
Hằng số Ma thuật trong PHP

Hằng số Ma thuật trong PHP là gì?

Trong bài Hằng số trong PHP, chúng ta đã học cách định nghĩa và sử dụng các hằng số trong tập lệnh PHP.

=> Đây là Hằng số tự định nghĩa

Và, ngoài hằng số chúng ta tự định nghĩa.

PHP cũng cung cấp một tập hợp các hằng số được định nghĩa trước, chúng có thể thay đổi tùy thuộc vào nơi chúng được sử dụng.

Những hằng số này được gọi là Hằng số Ma thuật. Ví dụ, giá trị của __LINE__ phụ thuộc vào dòng đó nó được sử dụng trên trong kịch bản của bạn.

1. Hằng số __LINE__ trong PHP

Hằng số __LINE__ liên tục trả về chỉ số dòng hiện tại trong tập lệnh, nó hoạt động như thế này:

<?php
echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 2
echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 3
echo "Line number " . __LINE__ . "<br>"; // Displays: Line number 4
?>

2. Hằng số __FILE__ trong PHP

Hằng số __FILE__ trả về đường dẫn và tên đầy đủ của tệp PHP đang được thực thi. Nếu được sử dụng bên trong include, tên của tệp được include sẽ được trả về.

Hằng số __FILE__ được sử dụng như thế này:

<?php
// Hiển thị đường dẫn tuyệt đối của tệp này
echo "Đường dẫn đầy đủ của tệp này là: " . __FILE__;
?>

>> Xem ngay: Hướng dẫn Include trong PHP

3. Hằng số __DIR__ trong PHP

Hằng số __DIR__ trả về thư mục của tệp. Nếu được sử dụng bên trong include, thư mục của tệp được include sẽ được trả về. Đây là một ví dụ:

<?php
// Hiển thị thư mục của tập tin này
echo "Thư mục của tập tin này là: " . __DIR__;
?>

4. Hằng số __FUNCTION__ trong PHP

Hằng số __FUNCTION__ trả về tên của hàm hiện tại.

<?php
function myFunction(){
    echo  "Hàm tên là - " . __FUNCTION__;
}
myFunction(); // Displays: Hàm tên là - myFunction
?>

5. Hằng số __CLASS__ trong PHP

Hằng số __CLASS__ trả về tên của lớp hiện tại. Đây là một ví dụ:

<?php
class MyClass
{
    public function getClassName(){
        return __CLASS__;
    }
}
$obj = new MyClass();
echo $obj->getClassName(); // Displays: MyClass
?>

6. Hằng số __METHOD__ trong PHP

Hằng số __METHOD__ trả về tên của phương thức lớp hiện tại.

<?php
class Sample
{
    public function myMethod(){
        echo __METHOD__;
    }
}
$obj = new Sample();
$obj->myMethod(); // Displays: Sample::myMethod
?>

7. Hằng số __NAMESPACE__ trong PHP

Hằng số __NAMESPACE__ trả về tên của namespace hiện tại.

<?php
namespace MyNamespace;
class MyClass
{
    public function getNamespace(){
        return __NAMESPACE__;
    }
}
$obj = new MyClass();
echo $obj->getNamespace(); // Displays: MyNamespace
?>

BONUS 1: Phiên bản PHP 5.4.0 thêm hằng số ma thuật __TRAIT__

BONUS 2: Phiên bản PHP 5.5.0 thêm hằng số ma thuật ::class

Bạn có thể tham khảo thêm Magic Constant tại PHP.NET

Lời kết

Như vậy là bạn đã biết về Hằng số ma thuật trong PHP là gì, cũng như cách sử dụng Hằng số ma thuật này.

Hãy xem kỹ các ví dụ để ghi nhớ cách sử dụng chúng nhé.

Chúc bạn Học Lập trình PHP hiệu quả!

PHPDev

Tìm hiểu về hàm strstr(), strpbrk(), substr() trong PHP

Trong bài này chúng ta sẽ cùng tìm hiểu cách lấy ra một phần của một chuỗi trong Lập trình PHP.

Trong bài này chúng ta sẽ cùng tìm hiểu cách lấy ra một phần của một chuỗi trong Lập trình PHP.

Lấy ra một phần của một chuỗi trong Lập trình PHP.
Lấy ra một phần của một chuỗi trong Lập trình PHP.

Chúng ta sẽ tìm hiểu cách lấy ra một phần của một chuỗi bằng 3 phương thức strstr(), strpbrk() substr().

1. Hàm strstr() trong PHP

Hàm strstr() trong PHP được sử dụng để lấy một phần của chuỗi tính từ vị trí chỉ định đến hết chuỗi.

Cú pháp hàm strstr() trong PHP:

strstr(string,search,before_search)

Các tham số trong hàm strstr():

  • string: Bắt buộc. Chỉ định chuỗi để tìm kiếm
  • search: Bắt buộc. Chỉ định chuỗi tìm kiếm. Nếu tham số này là một số, nó sẽ tìm kiếm ký tự khớp với giá trị ASCII của số đó
  • before_search: Không bắt buộc. Một giá trị boolean có mặc định là ‘false’. Nếu được đặt thành ‘true’, nó sẽ trả về một phần của chuỗi trước lần xuất hiện đầu tiên của tham số tìm kiếm (không bao gồm search)

Ví dụ về cách sử dụng hàm strstr() trong PHP:

<?php
$email  = 'hello@niithanoi.edu.vn';
$domain = strstr($email, '@');
echo $domain; // @niithanoi.edu.vn

$user = strstr($email, '@', true); // Kể từ PHP 5.3.0
echo $user; // hello
?>

>>> Xem cách kiểm tra một chuỗi bên trong chuỗi khác bằng hàm strpos() trong PHP

2. Hàm strpbrk() trong PHP

Hàm strpbrk() tìm kiếm một chuỗi cho bất kỳ ký tự nào được chỉ định. Hàm này sẽ trả về chuỗi bắt đầu từ ký tự được tìm thấy, nếu không, nó trả về flase

Cú pháp hàm strpbrk() trong PHP:

strpbrk(string,charlist)

Các tham số trong hàm strpbrk():

  • string: Tham số bắt buộc chỉ định chuỗi để tìm kiếm
  • charlist: Tham số bắt buộc chỉ định ký tự cần tìm

Ví dụ về cách sử dụng hàm strpbrk() trong PHP:

<?php

$text = 'Cả lớp học Lập trình PHP';

// Kết quả "học Lập trình PHP" vì 'h' được khớp trước
echo strpbrk($text, 'ch');

// Kết quả "Lập trình PHP" vì strpbrk() phân biệt Hoa - thường
echo strpbrk($text, 'L');
?>

3. Hàm substr() trong PHP

m substr() trả về một phần của chuỗi với tham số chị định vị trí bắt đầu và độ dài của chuỗi dự định lấy về.

Cú pháp hàm substr() trong PHP:

substr(string,start,length)

Các tham số trong hàm substr():

  • string: Bắt buộc. Chỉ định chuỗi định lấy 1 phần từ đó
  • start: Bắt buộc. Chỉ định vị trí bắt đầu lấy (Số Dương lấy bắt đầu từ đầu chuỗi, Số Âm lấy bắt đầu từ cuối chuỗi, Số 0 lấy từ ký tự đầu tiên)
  • length: Tham số không bắt buộc. Chỉ định độ dài của chuỗi trả về. Mặc định là đến cuối chuỗi. (Số dương – Độ dài được trả về từ tham số bắt đầu. Số âm – Độ dài được trả về từ cuối chuỗi)

Ví dụ về cách sử dụng hàm substr() trong PHP:

Chúng ta cùng xem ví dụ về hàm substr() bên dưới, VD1

<?php
$rest = substr("abcdef", 1);     // returns "bcdef"
$rest = substr("abcdef", -2);    // returns "ef"
$rest = substr("abcdef", 3, 1);  // returns "d"
$rest = substr("abcdef", -3, 1); // returns "d"
?>

Ví dụ thứ 2

<?php
$rest = substr("abcdef", 0, -1);  // returns "abcde"
$rest = substr("abcdef", 2, -1);  // returns "cde"
$rest = substr("abcdef", 4, -4);  // returns false
$rest = substr("abcdef", -3, -1); // returns "de"
?>

Tổng kết

Trên đây là 3 hàm PHP cung cấp sẵn để lấy một phần chuỗi ra từ một chuỗi khác. Nếu chỉ muốn kiểm tra sự tồn tại của chuỗi thì có thể sử dụng hàm strpos().