浮动(Float)
关于浮动,要说的可能就是:一个设置了浮动的元素会尽量向左移动或向右移动,且会对其后的元素造成影响,其后的元素会排列在其围绕在其左下或右下部。似乎就这么简单,但是在实际开发中,它应用这的是非常的多。在此,我会浅析浮动的基本原理,然后通过实例的方式尽量让大家对浮动有更加深刻的理解
设置一个元素的浮动很简单
// 只能设置一个元素左浮动或又浮动float: left/right;
需要特别注意的是:浮动 只能 作用于文档流中的元素。也就是说对于四种定位方式,只对默认定位(Static)、相对定位(Relative)的元素起作用。
示例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> #red-div { background-color: red; width: 100px; height: 100px; } #blue-div { background-color: blue; width: 100px; height: 100px; float: right; } </style></head><body> <div id="red-div"></div> <p id="before">This is a paragraph. This is a paragraph. This is a paragraph. </p> <div id="blue-div"></div> <p id="after">This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph. This is another paragraph.</p></body></html>
示例
// 设置 blue 的透明度#blue-div { background-color: rgba(0, 0, 255, 0.3); width: 100px; height: 100px; float: right;}// 改变 after 的内容长度<p id="after">This is another paragraph.</p>
观察发现,after 按照正常的文档流布局方式排列
// 设置 after 的背景色#after { background-color: orange;}
观察发现,after 占据了整个屏幕宽度
示例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> body { background-color: lightgray; } div { margin-right: 10px; } #red-div { background-color: red; width: 100px; height: 100px; float: right; } #blue-div { background-color: blue; width: 100px; height: 100px; float: right; } #green-div { background-color: green; width: 100px; height: 100px; float: right; } </style></head><body> <div id="red-div"></div> <div id="blue-div"></div> <div id="green-div"></div></html>
我们可以发现,浮动元素后的浮动元素,在空间充足的情况下会紧邻其左下或右下方显示(可以理解为从浮动方向起,向相反方向排布)。我们接下来看看空间不足的情况。
// 设置 blue 的款的为 400px#blue-div { background-color: blue; width: 400px; height: 100px; float: right;}
在空间不足的情况下,其后的元素会排列在下一行,且从浮动方向起,向相反方向排列。接下来我们设置不同的浮动方向。
// 设置 green 左浮动#green-div { background-color: green; width: 100px; height: 100px; float: left;}
设置 green 左浮动后,其会从其在文档流的当前高度开始左右浮动(其不会对其前方的元素造成影响)
大家都知道,浮动元素会对其后的元素造成影响。那么,总有些时候,我们是讨厌这些影响的,这就需要清除浮动的影响。
clear: both/left/right;
示例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> body { background-color: lightgray; } div { margin-right: 10px; } #red-div { background-color: red; width: 100px; height: 100px; float: right; } #blue-div { background-color: blue; width: 400px; height: 100px; float: right; } #green-div { background-color: green; width: 100px; height: 100px; } </style></head><body> <div id="red-div"></div> <div id="blue-div"></div> <div id="green-div"></div></html>
由图可知,green-div 显示到了 red-div 的左边,其主要是受到 red-div 右浮动的影响。怎么知道其是收到了 red-div 而不是 blue-div 的影响呢?
// 改变 green-div 的宽度#green-div { background-color: green; width: 30px; height: 100px;}
观察发现,green-div 并没显示在 blue-div 的左边(blue-div 的左边足以容纳 green-div)。接下来我们看看清除浮动后的效果。
// 清楚 green-div 的浮动#green-div { background-color: green; width: 30px; height: 100px; clear: both;}
清除 green-div 的浮动后,green-div 重新按照文档流默认的流式布局方式排布。
示例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> body { background-color: lightgray; } #container { background-color: yellow; } #red-div { background-color: red; float: left; } #green-div { background-color: green; float: right; } </style></head><body> <div id="container"> <div id="red-div"></div> <div id="green-div"></div> </div></html>
我们先搭建页面的结构,但是在界面上,你什么都看不到。很明显,对于 div,它默认的尺寸是其内容的尺寸,你没有设置宽高,自然不会显示。
// 设置 red-div 和 blue-div 的尺寸#red-div { background-color: red; width: 150px; height: 180px; float: left;}#green-div { background-color: green; width: 330px; height: 300px; float: right;}
如图,设置 red-div 和 blue-div 后,其确实显示出来了。但是我们设置的父包含块背景颜色却没有显示出来。这明显不符合上边的说法“对于 div,它默认的尺寸是其内容的尺寸”,这又是怎么一会事呢?先不管怎么回事,我们先把问题解决了。
// 设置 container 的 overflow 属性为 hidden#container { background-color: yellow; overflow: hidden;}
如图所示,我们发现,背景图片显示出来了。但是原因是什么?原因是,当父包含块中的子元素设置了浮动时,而其本身没有设置浮动的情况器,其自身的高度就没法扩展(不能随着子元素的高度来改变自己的高度)。关于两列布局,及如何解决这个问题,还有其他的方案,在此我们不在叙述。有兴趣的朋友可以和我一起探讨。
我们知道,一个元素至少有两种显示状态:显示 / 隐藏。而 HTML 元素又分为块级元素和内联元素,我们通常需要改变一个 HTML 元素的具体的显示状态,来满足实际的需求。在此,我们就来看看如何通过 display 属性来控制一个 HTML 元素的显示状态。
控制 隐藏 或 显示
// 隐藏一个元素,元素默认显示display: none;
使用 display 隐藏一个元素,被隐藏的元素不会再占据文档流的空间
// 使用 visibility 属性隐藏一个元素visibility: hidden;
使用 visibility 属性隐藏一个元素,被隐藏的元素会占据原有的文档流空间
默认情况下
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> body { background-color: lightgray; } #red-div { background-color: red; width: 100px; height: 100px; } </style></head><body> <p>This is a paragraph.</p> <div id="red-div">This is a div.</div> <span>This is another paragraph.</span></html>
使块级元素显示为内联元素
// 使 red-div 显示为内联元素#red-div { background-color: red; width: 100px; height: 100px; display: inline;}
观察发现 red-div 和 span 显示在了一行(块级元素默认会在其前后添加一个换行);且 red-div 设置的宽高也没有效果,这是必然的(只有块才有尺寸)。如果我们想让 red-div 显示在现在的位置,且可设置宽高,那么就让它显示为一个行内块级元素。
#red-div { background-color: red; width: 100px; height: 100px; display: inline-block;}
使内联元素显示为块级元素
// span 本身是一个内敛元素,设置它显示为块级元素span { display: block;}
图示为设置 span 为块级元素后的效果,但是我们会发现,没有在其前边增加换行。
通常情况下,我们需要设置一个元素或元素内容的对齐方式,来美化我们的界面。对齐主要在两个方向上:水平和垂直
使用 Absolute 定位实现左右对齐
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> body { background-color: lightgray; } #red-div { background-color: red; width: 100px; height: 100px; /*设置右对齐*/ position: absolute; right: 0px; } </style></head><body> <div id="red-div">This is a div.</div></html>
使用 float 设置左右对齐
#red-div { background-color: red; width: 100px; height: 100px; /*设置右对齐*/ float: right;}
中心对齐
#red-div { background-color: red; width: 100px; height: 100px; /*设置居中对齐*/ margin: 0px auto;}需要注意的是,在使用 margin 来设置一个元素的居中对齐时,这个元素必须设置有宽度
设置垂直对齐
vertical-align: top/middle/bottom;
默认情况(顶部对齐)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> body { background-color: lightgray; } #red-div { background-color: red; width: 100px; height: 100px; display: inline-block; } </style></head><body> <div id="red-div">This is a div.</div> <span>This is a paragraph.</span></html>
设置垂直居中对齐
#red-div { background-color: red; width: 100px; height: 100px; display: inline-block; vertical-align: middle;}
使用 text-align 来设置文本内容的对齐方式
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <style> body { background-color: lightgray; } #red-div { background-color: red; width: 100px; height: 100px; text-align: center; } #content { background-color: yellow; width: 50px; height: 50px; } </style></head><body> <div id="red-div"><div id="content">div</div></div></html>
我们发现,设置 text-align 后,red-div 的子孙元素的文本内容水平居中对齐了,其子元素 content 并没有居中对齐。我们再试没有办法像控制元素一样控制内容的垂直方向上的对齐方式。但是可以采用其他方案,如:边距、填充等
实在是枯燥无味,不知你是否能坚持看到这里。关于 HTML 和 CSS 基础的介绍,到此就告一段落了。有关更多细节的东西,会在后续的博客中少有涉及。接下来,会介绍 JavaScript 的基础。本目前在从事 iOS 和 web 开发工作,处于小妖修炼阶段,很希望与大家交流,共同进步。

공식 계정 웹 페이지 업데이트 캐시, 이것은 간단하고 간단하며 냄비를 마시기에 충분히 복잡합니다. 공식 계정 기사를 업데이트하기 위해 열심히 노력했지만 사용자는 여전히 기존 버전을 열었습니까? 이 기사에서는이 뒤에있는 비틀기와 회전을 살펴 보고이 문제를 우아하게 해결하는 방법을 살펴 보겠습니다. 읽은 후에는 다양한 캐싱 문제를 쉽게 처리 할 수있어 사용자가 항상 가장 신선한 콘텐츠를 경험할 수 있습니다. 기본 사항에 대해 먼저 이야기 해 봅시다. 액세스 속도를 향상시키기 위해 브라우저 또는 서버는 일부 정적 리소스 (예 : 그림, CSS, JS) 또는 페이지 컨텐츠를 저장합니다. 다음에 액세스 할 때 다시 다운로드하지 않고도 캐시에서 직접 검색 할 수 있으며 자연스럽게 빠릅니다. 그러나 이것은 또한 양날의 검입니다. 새 버전은 온라인입니다.

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

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

이 기사는 CSS를 사용한 웹 페이지에 효율적인 PNG 테두리 추가를 보여줍니다. CSS는 JavaScript 또는 라이브러리에 비해 우수한 성능을 제공하며, 미묘하거나 눈에 띄는 효과를 위해 테두리 너비, 스타일 및 색상 조정 방법을 자세히 설명합니다.

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

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

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

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


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Dreamweaver Mac版
시각적 웹 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
