[CSS] 定位和清除浮动_html/css_WEB-ITnose
定位
盒子的位移属性 top right bottom left 用于指定元素的位置和方向,这些属性只能在元素的 position 属性设置了 relative absolute fixed 的值时生效。
对于relative ,位移属性指的是元素目前位置到原位置的偏移量,即元素与其原位置的边缘之间的距离。
对于absolute fixed ,位移属性指的是元素与父元素的边缘之间的距离。( absolute 根据的是非 static 父元素,或者 body , fixed 根据的是浏览器窗口)
static
元素都有 position 属性,其默认值是 static ,这也意味着,它们没有也不接受位置属性设置。( top right bottom left )
relative
relative 元素在页面中仍是正常的、静态的,属于自然流。其他元素不会占用其原来的位置。
如果同时设置了 top bottom , top 优先级高于 bottom 。
如果同时设置了 left right ,取决于页面所用语言是从左到右 ltr 还是 从右到左 rtl 。
absolute
absolute 元素会脱离文档流。 absolute 元素需要至少一个祖先元素设置了 relative 或 absolute 属性,不然元素定位会相对于页面的主体 body 进行定位。
使用了 absolute 的元素可以指定垂直和水平的位移属性,使 absolute 元素相对于设置了 relative 的祖先元素边缘进行移位。负的位移属性会使元素移到盒子外面。
例如,如果一个absolute元素设置了 top 值为 50px 和 right 值为 100px , absolute 元素会相对于其设置了 relative 的父元素的顶边向下移动 50px ,相对于父元素的右边向左移动 100px 。
但是,如果使用了 absolute 的元素没有进行任何盒子位移属性设置,那么 absolute 元素的顶部和左部会和设置了 relative 的父元素的顶边和左边重合。如果设置了一个盒子位移属性,比如说 top ,那么absolute元素垂直方向会进行移动,而水平位置默认还是左对齐。
当一个 absolute 元素没有明确指定高度和宽度,同时使用盒子位移的 top 和 bottom 属性时,会使元素的高度跨越整个容器。同样的,当这个元素同时使用位移 left 和 right 属性值,会使元素的宽度跨越整个容器。如果同时使用四个位移属性,会使元素的高度和宽度跨越整个容器。这个时候 absolute 元素的宽度和高度都是 100% 。
fixed
fixed 元素会相对于浏览器窗口进行定位,并且不会随滚动条进行滚动。
fixed 常用于在页面低端呈现横幅,例子如下:
<footer>FixedFooter </footer>
footer { bottom: 0; left: 0; right: 0; position: fixed;}
z-index
要设置 z-index 属性,首先要设置 position 属性为 relative absolute fixed 之一。一般来说,元素出现的时候就放置在 z 轴上。先出现的元素要低于后出现的。可以直接使用 z-index 来控制这种层叠顺序。元素的 z-index 值越高将会出现在越上面。
清除浮动
<divclass="box-set"> <divclass="box">Box 1</div> <divclass="box">Box 2</div> <divclass="box">Box 3</div></div>
.box-set { background: #e8eae9;}.box { background: #8ec63f; height: 100px; float: left; margin: 10px; width: 200px;}
运行这段代码后,在 .box-set 的 div 本应有一个高亮的灰色背景,但所有的子元素浮动后,这个灰色的背景色是看不到的,因为它的 height 为 0 。
解决方法有两个,利用 overflow 或 clear 属性。
overflow
.box-set { background: #404853; overflow: auto;}
此方法存在缺点,例如,当你添加样式,或者将嵌套在里面的 span 元素移动到父容器的外面,或者你想给元素添加一个盒子阴影、制作一个下拉菜单时,元素的盒子阴影可能会在父元素内被切断。
clearfix
- 通过在父元素上使用 :before 和 :after 两个伪类并设置 content 为 “” ,从而在浮动元素的父容器前面和后面创建隐藏元素。
- 设置 clear : both 清除浮动。
- 设置 display: table 闭合浮动。
- 加上 zoom 属性来兼容 IE6 。
.box-set:before,.box-set:after { content: ""; display: table;}.box-set:after { clear: both;}.box-set { *zoom: 1;}
小技巧
为了方便,我们可以定义一个类名,把这个类名加到需要清除浮动的容器上。例如使用类名 group 。在需要清除浮动的容器上添加这个类名 group 。
参考文章
HTML和CSS高级指南之二——定位详解

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex

이 기사는 모바일 장치의 반응 형 웹 디자인에 필수적인 Viewport Meta Tag에 대해 설명합니다. 적절한 사용이 최적의 컨텐츠 스케일링 및 사용자 상호 작용을 보장하는 방법을 설명하는 반면, 오용은 설계 및 접근성 문제로 이어질 수 있습니다.

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

이 기사는 & lt; iframe & gt; 외부 컨텐츠를 웹 페이지, 공통 용도, 보안 위험 및 객체 태그 및 API와 같은 대안을 포함시키는 태그의 목적.

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.
