Vị trí được kế thừa trong css?

Các mối quan hệ tồn tại trong HTML và các mối quan hệ này giúp chúng tôi có thể chọn và tạo kiểu cho các thành phần của trang web. Khi một phần tử HTML được lồng trong một phần tử khác, phần tử bên ngoài được gọi là phần tử cha, trong khi phần tử bên trong là phần tử con

Heading I am a span

This is a paragraph

Một phần tử con có thể trở thành phần tử cha của một phần tử khác.  

Vị trí được kế thừa trong css?
Vị trí được kế thừa trong css?
Vị trí được kế thừa trong css?
Kế thừa, minh minh dụng nhân

Tại sao tất cả lời mở đầu và cốt truyện này? .  

Khi bạn tạo kiểu cho phần tử cha, trong một số trường hợp, kiểu sẽ được kế thừa bởi các phần tử con của nó. Tôi nói một số trường hợp vì kiểu thừa kế này không phải lúc nào cũng đúng

Tầm quan trọng của kế thừa CSS

Nếu bạn đã từng tạo kiểu cho nội dung của một trang web, rất có thể bạn đã không viết kiểu phông chữ cho mọi thành phần phải hiển thị văn bản. Có thể bạn chỉ thêm các kiểu phông chữ của mình vào phần tử cơ thể, chẳng hạn


    

A h2 element

A paragraph

Another paragraph

A h3 element

Nếu bạn muốn có một kiểu phông chữ thống nhất cho tất cả nội dung này, bạn chỉ phải tạo kiểu cho phần tử nội dung

body {
    font-family: Arial, Helvetica, sans-serif;
    }

Điều này có thể thực hiện được do tính kế thừa giữa các phần tử HTML. Và nó rất hữu ích, vì chúng ta không phải lặp lại kiểu


    

A h2 element

A paragraph

Another paragraph

A h3 element

4 giống nhau cho các div và tiêu đề. Điều tương tự cũng áp dụng cho các kiểu _______65, khi được áp dụng cho phần tử gốc sẽ được áp dụng cho các phần tử con của phần tử gốc đó trừ khi một kiểu

    

A h2 element

A paragraph

Another paragraph

A h3 element

5 khác được áp dụng cho các phần tử con

Mặc dù tính kế thừa khiến mọi thứ trở nên dễ dàng đối với chúng ta, nhưng mọi thứ sẽ không dễ dàng như vậy nếu tất cả các thuộc tính CSS hoạt động theo cách này

Đây là một ví dụ khác

  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber

Ai biết dưa chuột là quả mọng?. Chúng tôi sẽ triển khai một số kiểu cho danh sách gốc và xem kiểu nào được kế thừa theo huyết thống

Các kiểu


    

A h2 element

A paragraph

Another paragraph

A h3 element

4 và

    

A h2 element

A paragraph

Another paragraph

A h3 element

5 được áp dụng cho danh sách không có thứ tự được kế thừa bởi các phần tử con và thậm chí cả các phần tử cháu của nó. Tuy nhiên, đây không phải là trường hợp của kiểu

    

A h2 element

A paragraph

Another paragraph

A h3 element

3.  

Vậy những thuộc tính nào khác được kế thừa?

Danh sách đầy đủ các thuộc tính được thừa kế

Theo W3C, đây là các thuộc tính có thể được kế thừa

  1. 
        

    A h2 element

    A paragraph

    Another paragraph

    A h3 element

    4
  2. 
        

    A h2 element

    A paragraph

    Another paragraph

    A h3 element

    5
  3. 
        

    A h2 element

    A paragraph

    Another paragraph

    A h3 element

    6
  4. 
        

    A h2 element

    A paragraph

    Another paragraph

    A h3 element

    7
  5. 
        

    A h2 element

    A paragraph

    Another paragraph

    A h3 element

    5
  6. 
        

    A h2 element

    A paragraph

    Another paragraph

    A h3 element

    9
  7. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    0
  8. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    1
  9. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    2
  10. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    3
  11. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    4
  12. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    5
  13. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    6
  14. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    7
  15. 
        

    A h2 element

    A paragraph

    Another paragraph

    A h3 element

    4
  16. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    9
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    0
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    1
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    2
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    3
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    4
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    5
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    6
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    7
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    8
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    9
  17. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    90
  18. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    91
  19. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    92
  20. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    93
  21. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    94
  22. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    95
  23. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    96
  24. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    97
  25. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    98
  26. body {
        font-family: Arial, Helvetica, sans-serif;
        }
    99
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    90
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    91
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    92
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    93
    • Dairy
    • Vegetable
    • Fruit
      • Drupe
        • Peach
        • Coconut
        • Olive
      • Berry
        • Tomato
        • Cucumber
    94

Bạn có thể tìm hiểu thêm về danh sách này trên trang web của W3C (bạn chắc chắn không cần phải ghi nhớ tất cả những điều này. )

Cách buộc các thuộc tính kế thừa

Vì một số thuộc tính không thể được kế thừa, nên bạn có thể nghĩ rằng cách giải quyết là áp dụng chúng cho cả các phần tử con. Các phong cách chúng tôi sử dụng ở trên có thể trông như thế này

body {
    font-family: Arial, Helvetica, sans-serif;
    }
9

Chúng tôi vẫn chỉ có các kiểu đường viền trên danh sách mẹ và danh sách con đầu tiên. Nhưng vấn đề là chúng ta đã phải lặp lại chính mình. Nỗi đau sao chép lặp đi lặp lại cùng một phong cách trở nên rõ ràng

Một giải pháp tốt sẽ là giải pháp mà bạn chỉ cần áp dụng kiểu một lần, tốt nhất là cho cha mẹ và thực hiện một chút điều chỉnh cho con để kế thừa. Điều này sẽ giữ cho mọi thứ khô ráo và sạch sẽ

Từ khóa người thừa kế

Theo Tài liệu MDN

“Từ khóa CSS kế thừa khiến phần tử được chỉ định lấy thuộc tính được tính toán của thuộc tính từ phần tử cha của nó. ” – MDN

Nói cách khác, đó là một cách để nói rằng giá trị của một thuộc tính cụ thể phải được lấy từ phần tử cha của phần tử. Từ khóa này có thể được sử dụng trên bất kỳ thuộc tính CSS nào

Quay trở lại ví dụ của chúng tôi, đây là cách phong cách sẽ xuất hiện

  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
9

Với điều đó, kết quả sẽ như thế này

Vì vậy, nếu các kiểu đường viền của chúng ta cần thay đổi, chúng ta chỉ cần thay đổi chúng ở một nơi

Cách buộc các thuộc tính không được kế thừa

Mặc dù có thể thực thi kế thừa trên các thuộc tính không thể kế thừa theo mặc định, nhưng trong một số trường hợp, có thể không nên làm như vậy. Một cách khác là tận dụng các giá trị ban đầu của thuộc tính

Từ khóa ban đầu

Bạn có thể đặt giá trị mặc định hoặc giá trị ban đầu của thuộc tính CSS bằng cách sử dụng từ khóa CSS

  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
95. Điều này sẽ khiến giá trị kế thừa của thuộc tính quay trở lại giá trị ban đầu

Trong ví dụ này có một vài điều xảy ra. Chúng tôi có hai phần tử

  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
96 có thuộc tính màu đỏ được kế thừa bởi các phần tử
  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
97 và
  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
98 được lồng trong. Tuy nhiên, chúng tôi cũng áp dụng kiểu
  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
97 chung (màu xanh dương) nhưng chúng tôi đảm bảo rằng 
  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
97 thứ hai không kế thừa một trong hai kiểu theo cách sau


    

A h2 element

A paragraph

Another paragraph

A h3 element

2

  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
97 của chúng tôi trong khối

    

A h2 element

A paragraph

Another paragraph

A h3 element

22 trở lại bất kỳ màu nào mà trình duyệt đã áp dụng ban đầu. Đây là những gì trông giống như

Các từ khóa kế thừa CSS khác

Ngoài các từ khóa


    

A h2 element

A paragraph

Another paragraph

A h3 element

23 và
  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
95, chúng ta cũng có thể sử dụng

    

A h2 element

A paragraph

Another paragraph

A h3 element

25 và

    

A h2 element

A paragraph

Another paragraph

A h3 element

26. Trên thực tế, những lựa chọn thay thế này thực sự được khuyến nghị vì
  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
95 có thể tạo ra một số kết quả không mong muốn

Từ khóa không được đặt

Từ khóa không được đặt khác biệt một cách tinh tế. Nó đặt lại giá trị của một phần tử thành giá trị được kế thừa (nếu nó được kế thừa) và giá trị ban đầu của nó nếu không. Đây là ví dụ của chúng tôi một lần nữa


    

A h2 element

A paragraph

Another paragraph

A h3 element

0

Trong trường hợp này, thuộc tính


    

A h2 element

A paragraph

Another paragraph

A h3 element

5 của
  • Dairy
  • Vegetable
  • Fruit
    • Drupe
      • Peach
      • Coconut
      • Olive
    • Berry
      • Tomato
      • Cucumber
97 thứ hai của chúng tôi trở lại giá trị kế thừa (màu đỏ) thay vì giá trị ban đầu (màu đen)

Hoàn nguyên từ khóa

Cuối cùng, chúng ta có từ khóa


    

A h2 element

A paragraph

Another paragraph

A h3 element

25, hoạt động tương tự như

    

A h2 element

A paragraph

Another paragraph

A h3 element

26 trong hầu hết các trường hợp. Nó đặt lại thuộc tính về giá trị kế thừa của nó (nếu thuộc tính kế thừa từ cha của nó) hoặc về giá trị mặc định được thiết lập bởi biểu định kiểu riêng của người dùng (nếu nó tồn tại) hoặc sau đó là kiểu của trình duyệt

Sự kết luận

Khi một quy tắc kiểu được khai báo trong biểu định kiểu, có rất nhiều nơi giá trị của thuộc tính có thể đến từ đó;

  1. Biểu định kiểu do tác giả web xác định
  2. Kiểu do người dùng xác định
  3. Kiểu do trình duyệt xác định

Các kiểu được tìm nạp từ đâu tùy thuộc vào cách hoạt động của thuộc tính liên quan đến tính kế thừa. Nếu thuộc tính có thể kế thừa, thì giá trị của nó sẽ đến từ cha của nó, giá trị này sẽ được khai báo trong biểu định kiểu do tác giả web tạo. Nếu không, nó sẽ đến từ nguồn thứ hai hoặc thứ ba

Là vị trí cố định so với cha mẹ?

Trên thực tế, chúng hoạt động gần như giống nhau, chỉ các phần tử có vị trí cố định luôn liên quan đến tài liệu, không phải bất kỳ phần tử gốc cụ thể nào và không bị ảnh hưởng .

Vị trí là tuyệt đối hay tương đối?

Chức vụ. tương đối đặt một phần tử so với vị trí hiện tại của nó mà không thay đổi bố cục xung quanh nó, trong khi vị trí. tuyệt đối đặt một phần tử so với vị trí của phần tử gốc và thay đổi bố cục xung quanh nó

Là vị trí cố định tương đối?

Một phần tử có vị trí. đã sửa; . Các thuộc tính top, right, bottom, left dùng để định vị phần tử. , which means it always stays in the same place even if the page is scrolled. The top, right, bottom, and left properties are used to position the element.

Có tệ không khi sử dụng vị trí tương đối trong CSS?

Có. Ví dụ: bạn sẽ không thể làm việc với các phần tử được định vị tuyệt đối nữa - vị trí tuyệt đối sẽ luôn liên quan đến phần tử gốc, gần như .