Trang 1
Tìm hiểu CSS Position Truớc khi cùng nhau tìm hiểu về thuộc tính này của c s s ,tô i xin cảnh báo bạn rằng thật khó có thể diễn tả được tầm quan trọng của thuộc tính Position trong c s s ,n ỏ có thể được ví như ( có thể là hơi quá) là vai trò cùa Oxi với cuộc sống của chúng ta vậy. Trong việc thiết kế một trang web việc xác định một vị trí thành phần trên trang là một điều chúng ta thường xuyên phải thực h iện ,css ra đời cũng vì mục đích đó mà thôi,Các nhà thiết kế web sẽ ráp HTML và sau đó họ sẽ dùng c s s để định vị trí cho mỗi phần tử HTML. Trước hết các bạn cần biết rằng thuộc tính Position sẽ có bốn giá trị lựa chọn như sau : • static • relative • absolute • fixed Và điều sau đây các bạn cần phải lưu ý là mỗi phần tử HTML luôn bắt buộc phải nhận một giá trị trong 4 giá trị trên. Như vậy thì nếu các bạn vô tình không đặt thuộc tính position cho nó thì sao nhi ? yên tâm đi nếu các bạn không đặt giá trị cho nó thì nó sê tự động nhận giá trị mặc định là static. Sau đây tôi sẽ hướng dẫn cụ thể tác dụng của từng thuộc tính một: 1. Static Với giá trị này các thành phần HTML sẽ được định ở vị trí mặc định,và chú ý là khi đặt giá trị này thì nghĩa là các giá trị top, left,right và bottom sẽ không còn hiệu lực nữa. 2. Relative Khi các bạn đặt giá trị relative cho đổi tượng HTML nghĩa là bạn đang định vị trí tương đối cho nó. Tôi biết có thể một số bạn sẽ chưa hiểu như thế nào là định vị trí tương đối,vậy tôi xin giảng giải thế này,chẳng hạn như một phần tử X đang đứng ở vị trí mặc định là a nào đó trên trang web ( nói là vị trí mặc định bời vì nó đang nhận giá trị position mặc định là static). Và nếu các bạn đặt position cho nó là relative và các giá trị top,left,right và bottom xác định ( ở đây tôi giả sử là đặt top=50px) thế thì vị trí của X sẽ được tính từ vị trí a,nghĩa là coi a là gốc tọa độ ,các giá trị top,left,right và bottom sẽ là tọa độ của X trong hệ tọa độ gốc a đó. Nói đến đây chắc cũng quá đủ để các bạn có thể hiểu đưực vấn đề. 3. Absolute Khi giá trị cùa position là absolute nghĩa là phần tử đang được định vị trí một cách tuyệt đối. Có một điều cần lưu ý đó là khi đã nói đến định vị trí tuyệt đối nghĩa là nó phải có một đối tượng nào đó để đối chiếu vị trí,thật là nực cười khi chúng ta đưa ra câu lệnh : “ cách ThiNganHang.com
Trang 2
về bên phải một khoảng là lOOpx” !!!??!!.Rõ ràng lúc đó do không có đối tượng để đối chiếu nên việc dịch chuyển bên phải lOOpx là bất khả thi,ít ra cũng phải nói chẳng hạn như : “ cách về bên phải so với banner một khoảng là 1OOpx”. Các bạn cần nhớ những dấu tích sau về absolute: ■S Absolute sẽ căn cứ vào một đối tượng nào đó để định vị trí s Top,right,left và bottom sê phát huy tác dụng với absolute s Đối tượng chọn làm đối chiếu sẽ là đối tượng cha gần nhất của nó mà được vài đặt position là một trong 3 giá trị relative, absolute hoặc fixed ( nhớ là chỉ 3 giá trị này thôi nhé). ■S Nếu không tìm được đối tượng cha nào như thế nó sẽ chọn đối tượng đối chiếu là <html> 4. Fixed klii đặt position giá trị fixed, đối tượng HTML sẽ có vị trí cố địnli so với màn hình máy tính của bạn ( nhớ nhẻ so với màn hình máy tính chứ không phải là so với <html> đâu nhé). Nghĩa là khi bạn có kéo thanh trượt đi chăng nữa thì đối tượng vẫn sẽ ờ một vị trí cố định trên màn hình. Tôi sẽ không nói nhiều về Fixed, các bạn hãy thử cài đặt và xem kết quả thế nào sẽ hiểu ngay thôi. Trên đây chúng ta đã tìm hiểu qua về bốn giá trị của thuộc tính position,cũng xin nói luôn với các bạn rằng hai giá trị thông dụng nhất là relative và absolute,những nhầm lẫn có thể xảy ra nhiều nhất với hai giá trị này,vậy cho nên những câu hỏi sau bắt buộc các bạn phải trả lời với mục đích là kiểm tra xem các bạn đã thực sự hiểu chúng hay chưa.Trong quá trình nghiên cửu bài tập, nếu có chỗ nào vướng mắc thì xin hãy quay lại xem những lý thuyết cơ bản ở trên,xem kĩ từng dòng, từng chữ bạn nhé. Bây giờ tôi sẽ cho các bạn đoạn code HTML như sau : chtml > <head> <title></tỉtle> <style type="text/css"> body ị Ị #ngoai { height: 150px; width:150px; background-color: #FF9966; margin: auto; padding-left :50px; padding-top: 50px } ftrong ThiNganHang.com
Trang 3
{ height: loopx; width:lOOpx; background-color: #6666CC; top: 50px } img { I </style> </head> <body> <div id="ngoai"> <div id="trong"> <img src="C:/Users/pham ngoc hieu/Desktop/th_l/button_header.gif" alt="" /> </div> </div> </body> </html> Trang HTML sẽ hiện thị như sau : Go Sau đây là những câu hỏi mà các bạn cần trả lời: 1) Nấu như trong ừng { } tôi đặt Position:relative; Top:50px; Thì úng sẽ nằm ở đâu ? 2) Nếu như trong #trong tôi thêm : Position:relative Trong img { } là : Position:absolute; Top:50px Thì img sẽ được định vị theo đối tượng nào ? Vị trí của nó bây giờ sẽ ở đâu ? ThiNganHang.com
Trang 4
Nếu như position của #trong là absolute hay Fixed thì kết quả có thay đổi gì không ? 3) Nếu n h ư : Img { Positionrabsolute; Top:50px } Và thêm vào #ngoai giá trị Position:relative; Img sẽ nhận đối tượng nào để đối chiếu ? vị trí của nó sẽ như thế nào ? 4) Nấu n h ư : Img { Positiomabsolute; Top:50px } Thêm vào #ngoai giá trị Position:relative; Thêm vào #frong giá trị Position:absolute; Lúc đó img sẽ nhận đối tượng nào làm đối chiếu , và vị trí của nó sẽ như thế nào ? 5) Nếu như chúng chỉ thêm vào #body giá t r ị : Position:absolute Img { Positionrabsolute; Top:50px } Thì lúc đó img nhận đối tượng nào làm đối tượng đối chiếu ? lúc đó vị trí nó sẽ như thế nào ? 6) Nếu như Img { Position:absolute; Top:0px; } Thì lúc đó img nhận đối tượng nào làm đối tượng đối chiếu ? lúc đó vị trí của nó sẽ như thế nào? Đáp án của những câu hỏi trên được tôi thực hiện dưới đây, các bạn có thể tham khảo,phía bên trái là đoạn mã css, còn bên phải là kết quả hiện th ị: ThiNganHang.com
Trang 5
1) Vị trí mặc định của img là phía trên góc trái của hình vuông màu xanh,vậy cho nên khi position bằng relative thì nó sẽ lấy vị trí này làm đối chiếu. Do top=50px cho nên img sẽ cách vị trí mặc định là 50px. o t yle cype“"cexc/css"> bocy < > #ngoai í height: 150px; wiacn:I50px; background-color: #FF9966; margin; auto; padding-lefc :50px; padding-top: 50px > #trcng { height: lQOpx; width:lOOpx; background-color: #6666CC; tcp: 50px } img í PCSÌCIOR: relative; tcp:50px ) /style> 2) Đối tượng img sẽ chọn đối tượng cha gần nhất của nó mang một trong ba giá trị ( relative, absolute hoặc fixed) làm đối tượng đối chiếu. Vậy cho nên trong trường hợp này img sẽ chọn <div id=”trong”> </div> ( ò vuông màu xanh) làm đối tượng đối chiếu, và nó sẽ cách đỉnh của hình vuông này một khoảng bằng 50px như hình dưới Việc thay đổi giá trị position của #trong thành Fixed hay relative cũng không ảnh hưởng gì tới vị trí của img. ThiNganHang.com
Trang 6
<style tvpe="text/cssn> •* Generate preview file ~ J body 0 50 .150 .250 .300 350 _ -IIu 1u I.1IUolxjLXxl.100iJLLJlJjJJullJLLlXuajJIII'1'I''I.200 '..... . 1 j ) fcngoai { height: 150px; width:150px; background-color: #FF9966; margin: auto; padding-left:50px; padding-top: 50px > #trong { position: relative; height: lOOpx; width:lOOpx; background-color: #6666CC; } img { position: absolute; cop:50px I } </style> 3) Cũng giải thích như câu 2 thôi nhưng trong trường hợp này img sẽ chọn đối tượng cha gần thứ 2 ( ô vuông màu cam) làm đối tượng đối chiếu. Đối tượng cha thứ nhất ( ô vuông màu xanh ) tại sao lại ko được img nhận ?? đó là bởi vì nó đã nhận giá trị position mặc định là static. o c y l e type="text/css"> body ( I #ogoai < height: 150px; width:150px; background-color: #FF9966; xargin: auto; padding-lefz :SOpx; padding-top: sopx; position: relative; ì #trong < height: lOOpx; width:lOOpx; background-color: #6666CC; ) lng c position: absolute; cop:50px ) </scyle> 4) ThiNganHang.com
Trang 7
Lúc này cả #ngoai và #trong đều nhận giá trị position là relative và absolute ,nhưng img chỉ nhận đối tượng cha gần nhất mà thôi.Vậy nó sẽ lại chọn ô vuông màu xanh làm đối tượng đổi chiếu và kết quả sẽ như hình dưới. <s~yle type- "text/css"> body s : > #ngoai § 1 { height: 150px; width:150px; s " background-color: #FF9966; margin: auto; = padding-left:50px; S : padding-top: 50px; position: relative; > ị #trong ( »11 ' • • 11 00E height: iOOpx; width:lOOpx; 1 >1 background-color: #6666CC; u position: absolute;| ) img ( ị position: absolute; top:50px ) ?■ </stylo 5) Lúc này cả #ngoai và #trong đều nhận giá trị mặc định là position:static vậy cho nên img sẽ nhận <body> làm đối tượng đối chiếu do body là đối tượng cha gần nhất với nó và mang position:absolute.kết quả hiện thị như hình dưới đây <scỵle type“ "text/css"> body ( position: absolute; ị #ngoai ỉ height: 150px; width:150px; background-color: #FF9966; margin: auto; padding-left:50px; E padding-top: 50px; > #trong ỉ height: lOOpx; width:lOOpx; background-color: #6666CC; ) img { position: absolute; cop:50px } </style> ThiNganHang.com
Trang 8
6) Lúc này tất cả các đối tượng cha của img đều nhận giá trị mặc định là position:static ( body, #trong, #ngoai) vậy thì không còn cách nào khác img sẽ nhận đối tượng <html> để đối chiếu. Đó chính là lí do mà đổi tượng úng nằm sát ngay trên trình duyệt thế kia ( top = Opx). <3tỵle type-"text/c33"> body { ) #ngoai { height: 150px; width:150px; background-color: #FF9966; margin: auto; padding-left:50px; padding-top: 5ũpx; #trong i height: lOOpx; width:lOOpx; background-color: #6666CC; > img { position: absolute; toprppx ) </style> ThiNganHang.com
Hiển thị 8 trang đầu. Tải tài liệu để xem đầy đủ.
Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!