css补充说明

1.css核心样式

1.2 css常用样式

1.2.1 字体属性

  • font-weight 文字粗细

    作用:设置文字是否加粗显示

    属性值:单词类型和数字类型

    单词类型:

    属性值 说明
    normal 默认值,定义标准文字
    bold 定义粗体文字 b,strong
    bolder 定义更粗的字体
    lighter 定义更细的字体

    数字类型:100-900 整百 400:normal 700:bold

  • font-style 字体风格

    作用:设置文字是否斜体显示

    属性值:单词

    属性值 说明
    normal 设置正规的字体,大多数标签的默认值
    italic 设置斜体的文字,主要针对英文,要求英文以字体中的斜体样式显示
    ablique 设置倾斜的文字,只是将文字倾斜显示,与字体无关
  • line-height:行高

    作用:设置一行文字实际占有的高度,文字字号在行高是垂直居中的

    属性值 说明
    px 设置行高的具体的像素值
    百分比 设置的本身字号像素值的百分比
  • font 综合写法

    font: 字体 字号 行高 加粗 斜体

    注意:在进行综合书写,必须有字号和字体参与,必须字号在前,字体在后,不能颠倒顺序

    <style>
      p{
        /* 写法1:字号 字体 */
        font:12px "宋体";
        /* 写法2:字号/行高 字体*/
        font:12px/30px "宋体";
          /* 写法3:粗细 风格 字号/行高 字体*/
        font:bold italic 14px/20px "宋体"
      }
    </style>
    

1.2.1 文本属性

  • 水平对齐 text-align

    作用:设置文本水平方向的对齐,设置的是整体的

    属性值 说明
    left 居左对齐 默认
    center 居中对齐
    right 居右对齐
  • text-decoration 文本修饰属性

    作用:设置文本整体是否有线条的修饰效果

    一般用来去除<a>标签的默认样式

    属性值 说明
    none 没有修饰,默认
    overline 上划线
    line-through 中划线,删除线 <del>标签的默认值
    underline 下划线 <a>标签的默认值
  • 文本缩进 text-indent

    作用:设置段落首行是否进行缩进

    属性值 说明
    px单位 表示首行缩进多少像素
    em单位 首行缩进几个中文字符的位置
    百分比 缩进文字所在标签的父级标签的width属性值的百分比

    正负代表方向:正:右缩进,负:左缩进

1.3 盒子模型

盒子模型:width border padding margin height

书写元素内容区域: width height

盒子实体化区域:width height padding border

盒子实际占位的位置:width height paddign border margin

1.3.1 width

width:宽度

作用:设置可以添加元素内容的区域的宽度

属性值 说明
auto 默认值 浏览器可计算出的实际宽度
px 像素值定义的宽度
% 定义参考父元素宽度width的百分比宽度

注意:1.块级元素的宽度默认占据浏览器整行,行内级元素的宽度由内容撑开

2.body不需要设置宽度,宽度自适应浏览器窗口的宽度

1.3.2 height

height:高度

作用:设置可以添加元素内容区域的高度

属性值与宽度的类似

注意:1.内部元素的内容自动撑开的高度,元素高度自适应内部内容的高度

1.3.3 padding

padding:内边距

作用:设置元素的边框内部到宽高区域之间的距离

特点:可以加载背景,不能书写嵌套的内容

padding:复合属性 可以分别书写四个方向的属性 上 右 下 左

三个值:上 右 下; 左同右

两个值:上 右; 下同上 左同右

一个值:四个方向的值相同;

1.3.4 border

border:边框

作用:设置内边距外面的边界区域,作为盒子的实体化的最外层;

属性值:宽度 线的形状 颜色;

按照属性值的类型划分:

  • 线宽 border-width

    作用:设置边框线的宽度

    有四个方向的值

  • 线型 border-style

    作用:设置变量的线条形状

    属性值 说明
    none 定义无边框
    solid 定义实线
    dashed 定义虚线
    dotted 定义点线
    double 定义双线
    groove 定义3D凹槽边框 border-color
    ridge 定义3D垄状边框
    inset 定义3d内容凹陷效果
    autset 定义23d内容凸出效果
  • 边框颜色 border-color

    作用:设置边框的颜色

根据边框的方向划分:

  • border-top:设置上边框
  • border-right:设置右边框
  • border-bottom:设置下边框
  • border-left:设置右边框

根据方向和类型划分

border-方向-类型:如 border-top-width:10px;

1.3.5 margin

margin:外边距

作用:设置盒子与盒子之间的距离

特点:不能渲染背景

属性值:常用px为单位的数值

外边距的设置方式与内边距设置差不多,参考内边距

1.3.6 盒子模型应用

  • 清除默认样式

    大部分标签会被浏览器加载默认样式,会对布局造成一些影响

    <style>
     blockquote,body,dd,dir,dl,fieldset,figure,form,h1,h2,h3,h4,h5,h6,hr,input,legend,menu,ol,optgroup,p,pre,tbody,td,textarea,tfoot,th,thead,ul{margin:0;padding:0}
    </style>
    
  • 清除列表的默认样式

    <style>
      ul,ol{
        /*清除前面的默认样式 小点 */
        list-style:no ne;
      }
    </style>
    
  • 清除a标签的默认样式

    <style>
      a{
        text-decoration: none;
        color: #ccc;
      }
    </style>
    
  • 清除加粗效果

    <style>
      h1,h2,h3,h4,h5,h6,b,strong{
        font-weight:normal;
      }
    </style>
    
  • 初始化一些标签

    <style>
      body {
        color: #333;
        font-size: 14px;
        font-family: Arial,"宋体";
      }
    </style>
    

1.3.7 height的应用

height的应用:

  • 如果设置了高度,盒子占有的高度位置就确定死了,后面的同级元素会紧挨着加载

    overflow属性

    设置了高度的盒子,如果盒子内容加载的高度超过父级,会出现溢出效果。通过overflow属性,进行溢出部分的显示效果

    属性值 说明
    visible 默认值,可见的可视的,溢出部分显示
    hidden 溢出部分直接隐藏,隐藏超过边框范围的内容
    scroll 隐藏的部分出现滚动条,可以拖动滚动条看到隐藏部分,多出的盒子高度的部分不显示,无论有没有溢出,水平和垂直方向都会出现滚动条
    auto 自动的,如果没有溢出就正常显示,如果有溢出,溢出的方向自动出现滚动条
  • 如果不设置高度,会根据标签内部高度自动撑开

    要求盒子高度必须自适应内部内容的高度,或者设置height的属性值是自动的

1.3.8 居中

文字水平居中:text-align:center;

文本的垂直居中:单行文本:利用行高,设置行高等于高度

多行文本:让父元素高度自适应,子盒子撑开父盒子,然后给父盒子设置内边距。

元素的垂直居中:让父元素高度自适应,子盒子撑开父盒子,然后给父盒子设置内边距。

元素水平居中:设置margin,水平方向的值设置为auto,auto只在水平方向有作用。垂直方向无效。

1.3.9 父子盒模型

<head>
  <style>
    * {
        margin: 0;
        padding: 0;
    }
    .box1 {
        width: 1000px;
        height: 100px;
      border: 1px solid #f40;
    }
    .box1 p {
      width: 200px;
      height: 100px;
      margin-right: 10px;
      float: left;
      background-color: pink;
    }
  </style>
</head>
<body>
  <div class="box1">
    <p></p> 
    <p></p> 
    <p></p> 
    <p></p> 
  </div>
</body>

特殊情况:盒模型自动内减

父子盒模型,只有一个子元素且子元素是类似div标签必须占一行,不设置子元素的width属性,子元素的width属性值会自动加载父级元素的width.如果同时设置了子元素水平方向的border,padding,margin.会自动去缩减宽度的值

1.3.10 margin塌陷现象

在垂直方向如果有两个元素的外边距有相遇的,浏览器中加载的真正外边距不是两个间距的加和。而是两个边距中值比较大的,边距值小的塌陷到了边框值大的内部。

解决:同级之间:只给一个元素设置,不要进行拆分。

父子之间:可以父元素设置border和padding将边距隔离开。常用的方法是父子盒子之间的距离不要子元素的margin去踹出来,给父元素设置padding

注意:水平方向没有塌陷现象

1.4 标准文档流

标准文档流:元素排布布局的过程中,元素会默认自动从左往右,从上往下流式排列方式,前面内容发生了变化,后面的内容位置也会随着发生变化。

HTML就是一种标准文档流文件。

HTML中的标准文档流特点通过两种方式体现:微观现象,元素等级

元素等级:在标准流中,大部分元素是区分等级的,习惯将元素划分为常见的加载级别:块级元素,行内元素,行内块元素

块级元素

  • 块级元素可以设置宽高,在浏览器中正常加载
  • 块级元素必须独占一行,不能在其他任何标签并排一行
  • 块级元素如果不设置宽度,会自动撑满父级的width区域;高度不设置会被内容自动撑开高度。

行内元素

  • 行内元素不能正常加载宽度和高度属性,其他的盒模型属性虽然能设置,但是容易出现加载问题
  • 行内元素可以与其他的行内或行内块元素并排一行显示
  • 行内元素不论是否设置宽高,宽度和高度都只能被内容自动撑开

行内块元素

  • 行内块元素可以设置宽度和高度
  • 行内块元素可以与其他的行内或行内块并排一行显示
  • 行内块元素如果不设置宽高,要么以原始尺寸加载要么被内容撑开
  • 行内块依旧具有标准流的围观性质,例如空白折叠现象

1.4.1 显示模式 display

标准流中的元素有自己默认的浏览器加载模式,但是加载模式不是一成不变的,后期可以通过display属性更改一个标签的显示模式。

属性值:元素根据属性值不同,可以加载对应的元素等级的显示模式的特点。

属性值 作用
block 表示元素要以块级元素模式加载,具备块级特点
inline 表示元素要以行内元素模式加载,具备行内特点
inline-block 表示标签要以行内块模式加载,具备行内块特点
none 表示标签及内部内容直接隐藏,让出原有标准流的位置

脱离标准流:display属性更加的显示模式没有改变标准流的本质。

标签元素脱离标准流的方法:浮动,绝对定位,固定定位

1.4.2 浮动

浮动时一种非常重要的布局属性

属性名:float 漂流 浮动的意思

属性值:left 左浮动 right 右浮动

作用:让元素脱离标准流,同一级的浮动的元素可以并排在一排显示

  1. 浮动元素脱离标准流:

    a.标准流文档特点:区分行块,块级元素可以设置宽高,必须独占一行;行内元素不能设置宽高,可以并排一行

    b.浮动元素脱离了标准流的限制,具备行块二象性。可以设置宽高,可以并排一行,不会有空白折叠现象。如果元素不设置宽高,可以被元素自动撑开。

  2. 浮动元素依次贴边

    浮动属性值:left right

    浮动方向设置不同,进行布局时,加载位置方向不同

    如果父盒子的宽度足够,会依次在浮动方向一行显示,当父盒子宽度不够,后面的盒子会掉到下一行按照浮动方向排列。

  3. 浮动的元素没有margin塌陷

    margin塌陷现象的出现在标准流中,浮动元素已经脱离标准流,不再出现margin塌陷现象

  4. 浮动的元素让出标准流位置

    元素浮动之后,脱离了标准流,会将原来占有的标准流位置让给后面一个同级元素

    元素浮动后不再占据原来的位置,后面的元素会层叠上来。在低版本ie浏览器有兼容问题。如果没有特殊需求,不允许一个元素浮动,一个元素不浮动。特殊情况:字围现象;

  5. 浮动元素存在的问题

    标准流中的元素,不设置高度的情况下,都能被内部的标准流元素自动撑高。如果内部子元素进行了浮动,浮动的子元素是撑不高标准流父亲的;

    父元素没有高度,会影响后面元素的标准流位置,如果浮动子元素足够高时,有可能影响到后面浮动元素的贴边。

  6. 清除浮动

    • clear:both;给父元素设置

    • 给标准流的父元素添加一个高度

    • 隔墙法 在两个大盒子之间添加一个空的div标签,标签上带有clear:both属性

    • 伪类: :after 选中某个标签内部的最后的位置 ,前面紧跟普通选择器,一般给清除浮动的父盒子添加一个clearfix的类名

      .clearfix:after {
        content: "1";
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
      }
      
    • 添加溢出隐藏 属性 overflow:hidden

1.5 伪类选择器

伪类不能单独出现,必须和其他选择器搭配使用

不给标签添加任何属性,伪类名都是语法提前规定好的,伪类选择器后面添加的样式不一定立即加载到浏览器之上,只有用户触发了对应的行为,伪类的样式才会立即加载。

a标签的伪类

a标签可以根据用户行为不同划分四种状态,用户触发对应的行为,加载对应的样式。书写顺序一定不能颠倒

a:link {
  color:gray; /* 访问前的状态 */
}
a:visited {
  color: cyan; /* 访问后的状态 */
}
a:hover {
  color: red; /* 鼠标悬停的状态 */
}
a:active {
    color: yellow; /* 鼠标点击的状态 */
}

1.6 背景属性

1.6.1 背景颜色 background-color

作用:在盒子区域添加背景颜色的修饰

加载区域:在border及以内加载背景颜色。

属性名:颜色名,颜色值

1.6.2 背景图片 background-image

作用:给盒子添加图片的背景修饰

加载范围:默认加载到边框以内部分,后期如果图片不重复加载,加载从border以内开始。

属性值:url(图片路径)

1.6.3 背景重复 background-repeat

作用:设置添加的背景图是否要在盒子中重复进行加载。

属性值 说明
repeat 重复,默认值,表示会使用被背景图片重复加载填满整个盒子区域
no-repeat 不重复,无论背景图是否大于盒子范围,都只加载一次图片
repeat-x 水平重复,使用背景图片水平重复加载铺满一行,垂直方向不重复
repeat-y 垂直重复,使用背景图片垂直重复加载铺满一行,水平方向不重复

1.6.4 背景定位 background-position

作用:主要用于设置不重复的图片在背景区域的加载开始位置

属性值:有三种写法。单词表示法,像素表示法,百分比表示法,无论哪种写法,属性值都有两个,值之间用空格分隔。默认位置是 0 0 .border以内的左上角顶点为顶点。

第一个值表示 垂直方向

第二个值表示 水平方向

单词表示法:center left right;

像素表示法:

.box{
  width: 100px;
  height: 100px;
  background-image: url("iamge/l.jpg");
  background-position: 0 -10px;
}

1.6.5 背景附着 background-attachment

作用:设置背景图片是否随着页面或者盒子的滚动而滚动。

属性值

属性值 说明
scroll 滚动的,背景图片与盒子保持相对位置,随着页面的滚动而滚动
fixed 固定的,背景图片的定位参考点从盒子border以内的左上顶点变成浏览器窗口左上顶点,页面滚动时,浏览器窗口的左上顶点是不变的,导致背景图片固定在浏览器窗口的某个位置,不会随着页面的滚动而滚动。

1.6.6 background 连写

body {
  /* 背景图片 是否平铺 背景位置 背景附着 背景颜色 */
  background: url('iamg.jpg') no-repeat center top scroll lightblue;
}

1.6.7 背景应用

  • 替换插入图,如logo图

    让文字消失的方法:1.设置文学字号为0,有兼容性问题

    2.利用text-indent 和 overflow 解决

  • padding区域背景图

    .list {
      width: 300px;
      padding-left: 10px;
      margin: 10px;
      list-style: none;
      font: 16px/32px "微软雅黑";
    }
    .list li {
      background: url("iamges/star.jpg") no-repeat left center;
      padding-left: 20px;
    }
    
  • 精灵图

    为了有效减少服务器接收和发送请求的次数,提高页面的加载速度,出现了css精灵技术(css Sprites css雪碧)

    css精灵:一种处理网页背景图像的方式。

    由很多小的背景图合成大图就叫做精灵图。

    通过背景图和背景定位,利用切图工具选取需要的位置

    p {
      width: 80px;
      height: 20px;
      background: url("images/icons.png") no-repeat -146px -48px;
    }
    

1.7 C3背景属性

1.7.1 背景半透明

颜色值新增:rgba a:alpha 0-1

1:完全显示 0:透明

注意:背景半透明是盒子半透明,盒子里面的内容不影响;

.box {
  width: 200px;
  height: 200px;
  background-color: rgba(255,0,0,.5);
}

应用:1.字体,边框 也可使用半透明

1.7.2 背景缩放 background-size

设置背景图片的尺寸。

属性值 说明
px值 1-2个像素值,只设置一个值,垂直方向等比例拉伸;设置两个值,按照设置加载
百分比 同像素值设置方法,设置百分比时,数值参照盒子的宽高属性
cover 自动调整缩放比例,把背景图像扩展至足够大,以使背景图片完全覆盖背景区域,如有溢出部分会被隐藏
contain 自动调整缩放比例,把图像扩展至最大尺寸,保证图片始终完整显示在背景区域

1.8 定位 position

作用:设置定位的元素,它需要根据某个参考元素发生位置偏移。

属性值 说明
relative 相对定位
absolute 绝对定位
fixed 固定定位

偏移量属性:定位的元素想发生位置移动,必须搭配偏移量的使用

左右:left right

上下:top bottom

1.8.1 相对定位 relative

参考:标签加载的原始位置。

性质

  1. 相对定位的元素没有脱离标准流。占有原来的位置
  2. 元素显示效果上 原位留坑 形影分离

注意:

  1. 偏移量属性的值区分正负。正:与属性名相反;负:与属性名相同

  2. 同一个方向上不能设置两个偏移量,设置两个,水平方向会加载left,垂直方向会加载top。

    建议:书写时从水平和垂直方向各挑一个

  3. 由于相对定位的参考元素是自身,left的正值等价于right的负值。top的正值等价于bottom的负值。

实际应用:

  1. 由于相对定位元素比较稳定,未脱标。后续可以选择相对定位的元素应用为绝对定位的参考元素 子绝父相。
  2. 相对定位比较稳定,可以在占有原始位置的情况下,对加载效果区域进行位置微调,对文字进行微调。
.p {
  width: 100px;
  height: 100px;
  position: relative;
  top: 100px;
  left:100px;
}

1.8.2 绝对定位 absolute

参考元素:参考的是距离最近的有定位的祖先元素,如果祖先元素没有定位,参考body.

必须搭配偏移量属性才会发生移动

性质:

  1. 绝对定位的元素会脱离标准流,不再占据原来的位置
  2. 绝对定位的元素宽高不会失效。不设置宽高只能被内容撑开。
  3. 不用的参考元素以及不同的偏移量组合,导致定位元素参考点不同,具体位移效果不同
  4. 由于参考点不同,left的负值不再等价于right的正值。top的负值不再等价于bottom的正值。
.box {
  width: 100px;
  height: 100px;
  position: relative;
}
.box .son{
  width: 50px;
  height:50px;
  position: absolute;
  left: 50px;
  top:50px;
}

1.8.3 固定定位 fixed

固定定位脱离标准流

参考元素:浏览器窗口

参考点:浏览器窗口的四个顶点,跟偏移量组合方向有关。

由于浏览器窗口的四个顶点不变,所以固定定位的元素也是始终不变的

性质:脱离了标准流,可以设置宽高,根据偏移量属性可以任意设置在浏览器窗口的位置。

.backtop {
  position:fixed;
  right: 100px;
  bottom: 100px;
  width: 100px;
  height: 50px;
  background-color: #ccc;
  font: 18px/50px "微软雅黑";
  color: #333;
  text-decoration: none;
}

1.8.4 定位的应用

  • 压盖效果

    .box {
      width: 440px;
      position: relative;
      border:5px solid red;
    }
    .box p {
      position: absolute;
      right: 50px;
      bottom:50px;
      width: 50px;
      height: 50px;
      background-color: pink;
    }
    
  • 居中

    .box {
      width: 440px;
      position: relative;
      border:5px solid red;
    }
    .box p {
      width: 50px;
      height: 50px;
      background-color: pink;
      position: absolute;
      left: 50%;
      top:50px;
      margin-left: -25px;
    }
    
    
  • 定位压盖顺序 z-index

    默认压盖顺序。后写的会压盖前面的。

    书写代码时,需要注意压盖效果。必须合理设置HTML的顺序书写。

    .box {
      width: 300px;
      height: 300px;
      background-color: blue;
    }
    .box1 {
      width: 100px;
      height: 100px;
      background-color:pink;
      position:fixed;
      top:0;
      left:0;
      z-index:4;
    }
    .box2 {
      width: 50px;
      height: 50px;
      background-color:green;
      position:absolute;
      top:0;
      left:0;
    }
    

    自定义压盖顺序:z-index

    属性值是数字。数字大的会压盖数字小的。如果属性值相同,按照HTML的书写顺序压盖。

    z-index只要给定位的元素设置才会生效

    父子盒模型中,如果父子盒子都进行了定位,与其他的父子级有压盖部分:

    父盒子:如果不设置z-index,后写的压盖先写的,如果设置了z-index属性,值大的压盖值小的

    子级盒子:如果父级没有设置z-index属性,子级z-index大的会压盖小的;如果父级设置了z-index值,无论子级值多少,都是父级的值大的子级压盖父级值小的子级,俗称“从父效应”。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345