(基线对齐)元素显示类型与显示类型转换

(基线对齐)元素显示类型与显示类型转换

基线对齐问题


<html>
	<head>
		<meta charset="utf-8">
		<meta name="keywords"  content="html+css">
		<meta name="description"  content="">
		<title>title>
		<style>
			body,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,dt,dd{
      
				margin:0; 
				padding:0;
			}
			ul,ol{
      
				list-style:none;
			}
			a{
      
				color:#000;
				text-decoration: none;
			}
			p{
      
				font-size:60px;
				line-height: 100px;
			}
			/*
				基线对齐问题:(  ---空白字符---大小--基线  )
					vertical-align:
						top
						text-top
						middle  **************垂直对齐方式
						baseline->默认以基线对齐
						text-bottom
						bottom

				vertical-align起作用的前提条件?
					****作用在  inline (行内元素) ,inline-block ( 行内块元素 )**** 

				块级元素是没有基线对齐问题的

				图片下方的间隙问题:
					解决方法:
						1.直接将图片变成块级元素: display:block;
						2.使用除基线( baseline )以外其他的属性值
						
					图片和文字之间的居中对齐
						1. 需要给 对齐的  行内 行内块 每一个都要设置一个vertical-align: middle;
						(   双方(   双方要么是行内 要么就是行内块  )都要设置 vertical-align: middle;  )
			
			*/
			/*这一种选择器就是说明 : 所选的是图片这一类的标签的某一个图片标签*/
			/* img{
				border:2px solid blue;
			} */
			img.top{
      
				vertical-align:top ;
			}
			img.text-top{
      
				vertical-align:text-top ;
			}
			img.bottom{
      
				vertical-align:bottom ;
			}
			img.text-bottom{
      
				vertical-align:text-bottom ;
			}
			img.middle{
      
				vertical-align:middle;
			}


			div{
      
				/* vertical-align: middle; 不起作用 --不要  */
			/* 	height: 50px; */
				border:2px solid blue;
			}
			span{
      
			/* 	vertical-align: middle; */
			}
			img.block{
      
				/* display: block; */
				vertical-align: middle;
				
			}
		style>
	head>
	<body>
		<div><img src="1.png" class="block" height="50" alt=""><span>x你span>div>
		
		<p>jfnxX<img src="1.png" class="baseline" height="50" alt="">p>
		<p>jfnxX<img src="1.png" class="top" height="50" alt="">p>
		<p>jfnxX<img src="1.png" class="text-top" height="50" alt="">p>
		<p>jfnxX<img src="1.png" class="bottom" height="50" alt="">p>
		<p>jfnxX<img src="1.png" class="text-bottom" height="50" alt="">p>
		<p>jfnxX<img src="1.png" class="middle" height="50" alt="">p>
	body>
html>

元素显示类型和显示类型相互转换


<html>
	<head>
		<meta charset="utf-8">
		<meta name="keywords"  content="html+css">
		<meta name="description"  content="">
		<title>title>
		<style>
			body,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,dt,dd{
      
				margin:0; 
				padding:0;
			}
			ul,ol{
      
				list-style:none;
			}
			a{
      
				color:#000;
				text-decoration: none;
			}
			/*
				标签---按照排列方式

					块级标签 ( 负责结构的 ) :  display:block;
						常见的块级标签:p div ul li dl h1~6 ...
						特点:
							1. 独占一行
							2.宽度 默认是父级的百分之百 100%(不给高度,则有内容撑开)
							3.支持宽高,margin,margin:auto;padding
							4.可以容纳其他的块级标签和行级标签
							5.p标签不能包裹块级标签(  为什么--控制台看原因  )

					行级标签 ( 负责内容的) :   display:inline;
						常见的行级标签:span  img a i em b strong ...
						特点:
							1.多个行级标签共享一行( 横排显示 )
							2.不支持宽高,支持左右margin ,不支持上下margin,不支持 margin:auto;
							3.支持padding,上下padding只对自身有效(  上下padding不影响其他元素的位置  )
							4.行级标签不能包裹块级标签 (  a标签例外 )
							5.a标签不能套a标签 ( 为什么--控制台看原因-->包不住呀 )

					行内块:
            			常见元素:input
						通过设置 :  display:inline-block;
						特点:
							1.支持margin,不支持margin:auto;
            				2.本质上是行内元素,具有行内元素的性质
            				3.支持padding,上下padding只对自身有效(  上下padding不影响其他元素的位置  )
            				4.img标签不是行内块(是行内元素,但可以设置宽高,这源自于历史。。。)

							行内块间隙问题(空白字符---我们看不见  ---大小)-->这个问题应该只出现在行变行内块上
								解决方法:
									给行内块元素的父级设置字体大小为零 ,行内块字体大小重新设置
			*/
			.fa{
      
				width: 500px;
				font-size:0;
				background-color:skyblue;
			}
			span{
      
				display: inline-block;/*写在宽高之前*/
				width: 100px;
				height: 100px;
				padding:10px;
				font-size:16px;
				background-color: pink;
				border:2px solid green;
			}
			.so{
      
				display: inline-block;
				width: 100px;
				height: 100px;
				font-size:16px;
				padding: 10px;
				background-color: red;
			}
			.baseline{
      
				vertical-align: top;
			}
		style>
	head>
	<body>
		
		<div class="fa">
			<span class="baseline">多喝热水span>
			<span class="baseline">多喝热水span>
			<div class="so baseline">可以div>
		div>
	body>
html>

你可能感兴趣的:(html与css学习)