Quangkhoi1228 | Knowledge base
  • Về trang chủ
  • Lời nói đầu
  • Nhập môn lập trình web
    • Giáo trình
    • Class 01: Hello HTML!!!
    • Class 02: HTML: Comment, Text formatting, Attribute, Link
    • Class 03: HTML: Style, Inline/Block element, Image
    • Class 04: HTML: List, Table, Responsive
    • Class 05: Hello CSS!!!
    • Class 06: CSS: Flexbox, Layout
    • Class 07: Hello Javascript!!!
    • Class 08: JS: Operator, Expression, For/While Loop, Function
    • Class 09: JS: Search Function
    • Project 1: Layout Structure
    • Project 2: Search Function
    • Project 3: MVP
    • Review "Lập trình Frontend Website"
  • Lập trình Frontend Website
    • Class 01: Ôn tập HTML
    • Class 02: Thảo luận HTML
    • Class 03: Ôn tập CSS
    • Class 04: Chrome dev tools, CSS Box Model
    • Class 05: CSS: Position, Đơn vị đo
    • Class 06: CSS: hiệu ứng, responsive
    • Class 07: Thảo luận CSS
    • Class 08: Ôn tập JS
    • Class 09: JS: Mảng, Đối tượng, Biến tham chiếu và tham trị
    • Class 10: JS: Class, Pair programming
    • Class 11: JS: DOM, UI Rendering
  • Lập trình ReactJS
    • Class 01: Giới thiệu ReactJS
    • Class 01: Tạo dự án ReactJS mới
    • Class 02: ReactJS Component
    • Class 02: Import/Export component
    • Class 03: useState hook
    • Class 04: Project 1: UI cơ bản
    • Class 05: Render có điều kiện và danh sách
    • Class 06: useEffect hook
    • Class 07: Project 2: Xử lý user logic
    • Class 08: Project 3: Hoàn thiện dashboard
    • Class 09: Form và dữ liệu người dùng
    • Class 10: UseRef và thao tác với DOM
    • Class 11: Project 4: Xử lý form data
    • Class 12: Project 5: Hoàn thiện form data
    • Class 13: useMemo và useCallback
    • Class 14: Custom Hook
    • Class 15: Project 6: Hoàn thiện project
    • Class 16: Ôn tập
  • Lập trình NestJS
    • Class 01: Giới thiệu NestJS & Cài đặt dự án
    • Class 02: Routing, Controller và Dependency Injection
    • Class 03: Service và Data Validation
    • Class 04: Kết nối Database với TypeORM
    • Class 05: Quan hệ trong Database (OneToMany, ManyToOne) với TypeORM
    • Class 06: Middleware, Interceptor, Guard
    • Class 07: Authentication – JWT
    • Class 08: Authorization – Phân quyền
    • Class 09: File Upload & Configuration
    • Class 10: Giới thiệu WebSocket
    • Class 11: Project 1
    • Class 12: Project 2
    • Class 13: Project 3
    • Class 14: Project 4
    • Class 15: Project 5
    • Class 16: Project 6
  • Lập trình Java cơ bản
    • Class 01: Khai giảng
    • Class 02: Hello Java
    • Class 03: Biến và kiểu dữ liệu
    • Class 04: Toán tử và biểu thức
    • Class 05: Câu lệnh điều kiện
    • Class 06: Review 1
    • Class 07: Vòng lặp For
    • Class 08: Vòng lặp While / Do-while
    • Class 09: Java Method
    • Class 10: Review 2
    • Class 11: Java User Input
    • Class 12: Java File
    • Class 13: Final Exam 1
    • Class 14: Final Exam 2
    • Review "Lập trình OOP với Java"
  • Lập trình OOP với Java
    • Class 01: Hello OOP
    • Class 02: Class Attribute và Method
    • Class 03: Constructor, Modifier và Package
    • Class 04: Review 1
    • Class 05: Tính kế thừa và đa hình
    • Class 06: Tính trừu tượng và đóng gói
    • Class 07: Review 2
    • Class 08: Final Exam 1
    • Class 09: Final Exam 2
    • Review "CTDL và Giải thuật với Java"
  • CTDL và Giải thuật với Java
    • Class 01: Hello Data Structure
  • HTML
    • Cài đặt công cụ cơ bản
    • HTML là gì?
    • Phần tử HTML
    • Cấu trúc file HTML cơ bản
    • Comment trong HTML
    • Format văn bản trong HTML
    • Thuộc tính HTML
    • Liên kết(link) trong HTML
    • Project: Professional Email
    • HTML Style
    • Phần tử Inline và Block
    • HTML Image
    • HTML List
    • HTML Table
    • Head trong HTML
    • HTML Responsive
    • Project: Online Cover Letter
  • CSS
    • Giới thiệu CSS
    • CSS Selector
    • Thêm CSS vào trang
    • Comment trong CSS
    • Màu sắc trong CSS
    • CSS Background
    • CSS Border
    • CSS Spacing
    • CSS Flexbox
    • HTML Layout
    • Chrome dev tools
    • CSS Box Model
    • CSS Position
    • Đơn vị đo trong CSS
    • CSS Pseudo-classes
    • CSS Responsive
  • JavaScript
    • Giới thiệu Javascript
    • Thêm JS vào trang
    • Các hàm có sẵn
    • Biến và kiểu dữ liệu
    • JS Mảng
    • JS Đối tượng
    • JS Biến Tham Chiếu và Tham Trị
    • Toán tử và biểu thức
    • Câu lệnh điều kiện
    • Vòng lặp For / While
    • Hàm (Function)
    • Chức năng tìm kiếm với JS và DOM
    • JS Class
    • JS DOM
    • JS Dom Rendering
  • Java
    • Giới thiệu Java
    • Chương trình Hello world
    • Phân biệt JVM, JRE, JDK
    • Java Comment
    • Biến trong Java
    • Kiểu dữ liệu trong Java
    • Java Array
    • Toán tử trong Java
    • Biễu thức trong Java
    • Java If-else
    • Java Switch
    • Vòng lặp For trong Java
    • Vòng lặp While trong Java
    • Vòng lặp Do-while trong Java
    • Java Method
    • Java OOP
    • Java Class và Object
    • Java Class attribute
    • Java Class method
    • Java Constructor
    • Java Modifier
    • Java Package
    • Java Tính kế thừa
    • Java Tính đa hình
    • Java Tính trừu tượng
    • Java Tính đóng gói
    • Java User Input
    • Java File
  • Soft skills
    • Pair Programming
  • Web design and wireframe
  • NextJS
    • Tạo dự án NextJS mới
  • NestJS
    • Giới thiệu NestJS
    • NestJS controller
    • NestJS module
  • Git
    • Setup SSH key với GitHub
  • Bash
    • Giới thiệu Bash/Shell Script
  • Wordpress
    • Thêm custom routes
    • Deploy with ubuntu
  • Deployment
    • SSH server, đổi password và add SSH key
    • Tạo user mới và add SSH key
    • Page
  • GitBook
    • Custom domain with CloudFlare
  • Hướng dẫn khác
    • Gitbook custom domain with Cloudflare
    • Cấu hình OpenVPN
    • Cấu hình và lấy SSH key
    • Công cụ lập trình
      • Visual Studio Code
      • Cài đặt IntelliJ IDEA
    • Đường dẫn file trong HTML
    • CI/CD github action
  • Project: CV online
Powered by GitBook
On this page
  • Background-color
  • Cú pháp
  • Ví dụ
  • Background-image
  • Cú pháp
  • Ví dụ
  • Background-repeat
  • Cú pháp
  • Bài toán
  • Repeat
  • No-repeat
  • Repeat-x
  • Repeat-y
  • Space
  • Round
  • Background-position
  • Cú pháp
  • Ví dụ
  • Giá trị
  • Background-attachment
  • Cú pháp
  • Scroll
  • Fixed
  • Background shorthand
  • Ví dụ
  • Cú pháp
  1. CSS

CSS Background

Trong bài này chúng ta sẽ tìm hiểu về các thuộc tính liên quan đến background

PreviousMàu sắc trong CSSNextCSS Border

Last updated 2 years ago

Các thuộc tính Background dùng để cấu hình hình nền cho các phần tử trong trang. Trong bài này chúng ta sẽ học các thuộc tính sau:

  • background-color

  • background-image

  • background-repeat

  • background-position

  • background-attachment

  • background (shorthand property)

Background-color

Thuộc tính background-color quy định màu nền của một phần tử.

Cú pháp

background-color: value;

Ví dụ

body {
  background-color: red;
}

Background-image

Thuộc tính background-image quy định ảnh nền của một phần tử bằng một hình ảnh.

Mặc định ảnh nền sẽ lặp lại để làm sao bao phủ toàn bộ phần tử.

Cú pháp

background-image: url(image-url);

Ví dụ

body {
  background-image: url("paper.gif");
}

Khi sử dụng hình ảnh làm hình nền thì nên tránh các ảnh nền có màu sắc làm rối nội dung của trang

Background-repeat

Cú pháp

background-repeat: value;

Bài toán

Mặc định background-image sẽ tự động lặp lại theo chiều ngang và chiều dọc để có thể bao phủ được hết phần tử tuy nhiên trong một vài trường hợp ảnh nền chỉ được lặp lại theo 1 trong 2 chiều vì chiều còn lại đã đủ kích thước gây ra kết quả chúng ta không mong muốn lắm như ảnh dưới.

Trong trường hợp này nếu ảnh có thể lặp lại theo chiều ngang có thể sẽ ổn hơn, lúc này ta sẽ dùng background-repeat: repeat-x; để thực hiện yêu cầu này.

Repeat

Giá trị background-repeat: repeat; là giá trị mặc định, giá trị này sẽ làm cho hình nền lặp lại theo cả chiều ngang và dọc.

body {
  background-image: url("img_tree.png");
  background-repeat: repeat;
}

No-repeat

Giá trị background-repeat: no-repeat; sẽ làm cho hình nền sẽ hiển thị 1 lần và không lặp lại theo hướng nào cả.

body {
  background-image: url("img_tree.png");
  background-repeat: no-repeat;
}

Repeat-x

Giá trị background-repeat: repeat-x; sẽ làm cho hình nền lặp lại theo chiều ngang (trục x).

body {
  background-image: url("img_tree.png");
  background-repeat: repeat-x;
}

Repeat-y

Giá trị background-repeat: repeat-y; sẽ làm cho hình nền lặp lại theo chiều dọc (trục y).

body {
  background-image: url("img_tree.png");
  background-repeat: repeat-y;
}

Space

Giá trị background-repeat: space; cũng khá giống với repeat được liệt kê như sau:

  • Giống:

    • Cả repeat và space đều lặp theo 2 chiều.

  • Khác:

    • Space sẽ cố gắng lặp nhiều nhất có thể nhưng sẽ không làm cho hình bị cắt xén(mất một phần)

    • Sau khi cố gắng xong thì khoảng trắng sẽ được chia đều giữa các hình nền được lặp

body {
  background-image: url("img_tree.png");
  background-repeat: space;
}

Round

Giá trị background-repeat: round; cũng khá giống với space về việc ảnh nền sẽ không bị cắt nhưng khác space ở chỗ ảnh nền khi round sẽ bị kéo dài, thu nhỏ để không còn khoảng trống nào.

body {
  background-image: url("img_tree.png");
  background-repeat: round;
}

Background-position

Thuộc tính background-position dùng để quy định vị trí của ảnh nền.

Cú pháp

background-position: value;

Ví dụ

body {
  background-image: url("img_tree.png");
  background-repeat: no-repeat;
  background-position: right top;
}

Giá trị

Giá trị
Mô tả

left top left center left bottom right top right center right bottom center top center center center bottom

Chúng ta có thể sử dụng tên để đặt giá trị.

Nếu có duy nhất một giá trị, giá trị còn lại mặc định là center

x% y%

Chúng ta có thể dùng đơn vị % để gán giá trị.

Giá trị đầu tiên là vị trí theo trục x và giá trị thứ 2 là theo trục y.

  • Góc top left là 0% 0%

  • Góc right bottom là 100% 100%

  • Nếu chỉ có 1 giá trị thì giá trị còn lại mặc định là 50%

  • Mặc định giá trị là 0% 0%

xpos ypos

Chúng ta có thể sử dụng đơn vị tuyệt đối để làm giá trị

Giá trị đầu tiên là vị trí theo trục x và giá trị thứ 2 là theo trục y.

  • Góc top left là 0 0

  • Nếu chỉ có 1 giá trị thì giá trị còn lại mặc định là 50%

  • Bạn có thể phối hợp % và giá trị tuyệt đối với nhau.

Background-attachment

Trong một vài trường hợp nội dung dài thì trình duyệt sẽ xuất hiện một thanh cuộn, lúc này mặc định ảnh nền sẽ tự động chạy theo nội dung khi cuộn. Để giữ cho ảnh nền đứng yên khi cuộn lúc này chúng ta dùng thuộc tính background-attachment dùng để quy định background sẽ cuộn theo nội dung hay sẽ đứng yên khi nội dung di chuyển.

Cú pháp

background-attachment: value;

Scroll

background-attachment: scroll;

Giá trị mặc định, ảnh nền sẽ cuộn theo nội dung

Fixed

background-attachment: fixed;

Background sẽ đứng yên khi cuộn nội dung

Background shorthand

Cú pháp shorthand hay viết tắt giúp chúng ta viết nhiều cấu hình về background cho một phần tử cùng lúc thay vì chúng ta viết từng thuộc tính riêng biệt.

Ví dụ

Thay vì viết

body {
  background-color: #ffffff;
  background-image: url("img_tree.png");
  background-repeat: no-repeat;
  background-position: right top;
}

Chúng ta có thể viết tắt như sau:

body {
  background: #ffffff url("img_tree.png") no-repeat right top;
}

Cú pháp

background: background-color background-image background-repeat 
    background-attachment background-position;

Chúng ta có thể viết thiếu giá trị cho một vài thuộc tính miễn là theo đúng thứ tự được quy định theo cú pháp

Thuộc tính background-attachment sẽ không áp dụng được trong cú pháp shorthand

Giá trị của background-color là các

background-color bị ảnh hưởng bởi

Đơn vị có thể là px hoặc bất cứ nào.

Màu sắc trong CSS
opacity
đơn vị hợp lệ