C#基础笔记(第十九天)
1、CSS 层叠样式表 对HTML的补充
实现网页内容和页面效果的彻底分离
1.内联样式表(在标签内设置元素的样式)
<p style="background:red; font-size:xx-large">今天天气好晴朗,处处好风光</p>
比较灵活,想给谁设置数据就给谁设置数据
但如果想让当前页面所有P标签都变成这样,得所有的都写一遍,太麻烦了。
2.嵌入样式表(需要在head标签内写<style type="text/css"></style>)
<style type="text/css">
p{
font-size:xx-small;
}
全局改变,但是不会改变到内联样式表,内联样式表的优先级更高
3.外部样式表 link
下载别人写好的样式
tt{
font-size:xx-large;
}
<link href="Test.css" rel="stylesheet" type="text/css"/>
优先级低于前面两种
2、样式规则的选择器(通过怎样的途径来获得页面上要设置样式的元素)
1)、HTML Selector
tt{
}
2)、Class Selector(类选择器,需要给要设置样式的元素的class属性赋值)
tt.tt1{
}
tt.tt2{
font-size:xx-large;
}
<tt class="tt1">
<tt class="tt2">
页面中某些元素要显示同一样式的时候采用类 class选择器
3)、ID选择器(需要给要设置样式的元素的class属性赋值)
.p1{
}
#p2{
}
#p3{
}
#p4{
}
要保证每一个ID是唯一的,尽量不要给标签赋值同一个ID 单一用ID
<p class="p1">
<p class="p1">
<p id="p2">
<p id="p3">
<p id="p4">
4)、关联选择器
标签可以相互嵌套 根据嵌套的标签来赋值
p em{
}
<p><em>今天天气好晴朗</em></p>
<em>哈哈</em>
<em>哈哈哈</em>
<p>今天天气好晴朗</p>
<p>今天天气好晴朗</p>
<p>今天天气好晴朗</p>
5)、组合选择器
h1,h2,h3,h4,h5,h6,td{
}
<h1>我是一个粉刷匠</h1>
<h2>我是一个粉刷匠</h2>
<h3>我是一个粉刷匠</h3>
<h4>我是一个粉刷匠</h4>
<h5>我是一个粉刷匠</h5>
<h6>我是一个粉刷匠</h6>
<table border="1" cellspacing="0px" cellpadding="0px">
<tr>
<td>粉刷本领强</td>
<td>粉刷本领强</td>
<td>粉刷本领强</td>
<td>粉刷本领强</td>
</tr>
<tr>
<td>粉刷本领强</td>
<td>粉刷本领强</td>
<td>粉刷本领强</td>
<td>粉刷本领强</td>
</tr>
<tr>
<td>粉刷本领强</td>
<td>粉刷本领强</td>
<td>粉刷本领强</td>
<td>粉刷本领强</td>
</tr>
6)、伪元素选择器
伪元素选择器是指对同一个HTML元素的各种状态和其所包括的。部分内容的一种定义方式。例如,对于超链接标签(<a></a>)的正常状态(没有任何动作前)、访问过的状态、选中状态、光标移动到超链接文本上的状态,对于段落的首字母和首行,都可以使用伪元素选择器来定义。
常用的伪元素
A:active 选 中超链接时的状态
A:hover 光标移动到超链接上的状态
A:link 超链接的正常状态
P:first-link 段落中的第一行文本
P:first-letter 段落中的第一个字母
a:active{
text-decoration:none;
}
a:hover{
font-size:xx-large;
}
P::first-letter{
font-size:xx-small;
}
p::first-line{
font-size:xx-large
}
<p>小李子是一个二货<br/>
小李子是一个二货<br/>
小李子是一个二货<br/>
小李子是一个二货<br/>
小李子是一个二货</p>
<a href="#">超链接</a>
<a href="#">超链接</a>
<a href="#">超链接</a>
<a href="#">超链接</a>
<a href="#">超链接</a>
3、CSS字体属性介绍
1)、字体
font-family:该属性用于设置字体系列。
font-size:该属性定义文字的大小,可以使用度量单位来设置字体的大小,也可以使用一个相对的字体大小。还可以使用绝对的大小标记符。绝对大小的设置为 xx-small、x-small、small、medium、large、x-large、xx-large中的任意一个。xx-small为最小,xx-large为最大。
font-style:该属性用于定义字体样式为normal、italic或者oblique(斜体)
text-decoration:该属性用于文本中的下划线、上划线、闪烁效果。
font-weight:该属性拥有设置粗体字的磅值,该属性的值有:normal、bold、bolder、lighter、100~900
4、文档流
position:absolute;绝对定位,定到哪就是哪
position:fixed; 固定
z-index:3;数值越高的越显示在外面
div{
height:300px;
width:300px;
}
div.div1{
top:100px;
left:100px;
position:absolute;
z-index:3;
}
div.div2{
top:130px;
left:130px;
position:absolute;
z-index:2;
}
div.div3{
top:160px;
left:160px;
position:absolute;
z-index:1;
}
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
5、文本属性
文本属性包括:文字间距、对齐方式、上标、下标、排列方式、首行缩进。
word-spacing:设置单词之间的间距。
letter-spacing:设置字符之间的间距。
text-align:设置文本的水平对齐方式,取值可以是left、right、center、justfy
text-indent:设置第一行文本的缩进值
line-height:设置文本所在行的行高。
6、盒子模型
一个盒子就是div
DIV盒子和网页或其他DIV盒子之间的间距用margin表示
DIV盒子和DIV盒子里面的内容的间距用padding表示
DIV盒子的边框用border表示
表示所有的外边框间距为0。
*
{
margin:0px;
}
auto表示自动(居中)
把网页格式,局先布好了,再往里面填内容
先每一块DIV都弄一个背景颜色,等局布完了,再撤掉只留内容
写之前先以这个形式把网页的框架搭出来。
float:left(贴着左边漂浮) 漂浮要同个div里的都漂浮
飘起来就不在那个div内占地方了。
7.简单工厂和抽象类复习
1)、注释符
单行注释 // 注释单行代码
多行注释 /*要注释的内容*/
文档注释 ///注释类和方法
HTML <!--要注释的内容-->
CSS /*要注释的内容*/
2)、命名规范
Camel骆驼命名规范:要求首单词的首字母小写,其余单词首字母大写,变量、字段
int age string name char gender string highSchool
int _chinese 字段加下划线
Pascal:类或方法 GetMax GetAvg GetSum
起名一定要有意义,不要乱起
第一部分:面向对象
process 进程 操作进程
StartInfo是你要打开的那个文件的那个东西,它需要 ProcessStartInfo类型,把打开这个文件的地址传给这个对象 再把这个对象赋值给要打开的这个startInfo,最后调用它的start方法,把它打开
//使用进程打开指定的文件
ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\SJD\Desktop\AE.txt");
Process p = new Process();
p.StartInfo = psi;
p.Start();
3)、面向对象的复习
1.封装、继承、多态
***字段:存储数据,访问修饰符应该设置为priveate私有的
***属性:保护字段,对字段的取值和赋值进行限定
***new关键字:1、在堆中开辟空间 2、在开辟的空间中创建对象 3、调用对象的构造函数
***this关键字:1.代表当前类的对象 2.调用自己的构造函数
构造函数就是一个特殊的方法
构造函数没有void 必须是Public
单立模式,只能创建一个对象,如QQ
构造函数:初始化对象,当创建对象的时候,会调用构造函数。
给对象的每个属性赋值的过程称之为对象的初始化
***对字段的保护方法:
1.get()
2.set()
3.构造函数
***return:
1.立即结束本次方法
2.在方法中返回要返回的值
public Person(int age, string name,char gender,int chinese,int english,int math)
{
this.Age = age;
this.Name = name;
this.Gender = gender;
this.Chinese = chinese;
this.English = english;
this.Math = math;
}
public Person(int age,string name,char gender):this(age,name,gender,0,0,0)
{
}
4)、继承复习
解决代码的冗余,实现多态,增强了代码的扩展性,便于维护。
1.单根性
2.传递性
子类并没有继承父类的构造函数,而是会默认调用父类那个无参数的构造函数。
如果一个子类继承了一个父类,那么这个子类除了可以使用自己的成员外,还可以使用从父类哪里继承过来的成员。但是父类永远都只能使用自己的成员,而不能使用子类的成员。
子类之间也不能互相使用对方的成员。
5)、里氏转换
1、子类可以赋值给父类
2、如果父类中装的是子类对象,那么可以将这个父类转换为子类对象
3、as
Person person = new Student();
Teacher t = person as Teacher;
转换成功返回对应的对象
转换失败返回一个Null
4、is
Person person = new Student();
{
Console.WriteLine("OK,可以转换");
}
else
{
Console.WriteLine("NO,不可以转换");
}
转换成功返回true
转换失败返回false
6)、多态
1.虚方法 virtual
2.抽象类 abstract