高级选择器及伪类

高级选择器及伪类

1. 回顾基础选择器

  1. ID选择器 #id

  2. 类名选择器 .class

  3. 标签选择器 tagname

  4. 通配符选择器 *

  5. .组合(多元素)选择器 .class,#id

  6. 后代选择器 .class #id

  7. 子元素选择器 .class>#id

  8. 毗邻选择器 .class+#id (同层级)

  9. 关联后选择器 .class~#id (同层级)

10.多选择器 div.aa.bb#cc(之间并且的关系)

2. 属性选择器

E[attr]匹配具有attr属性的E元素

a[href]{ color:red; }

[href]{border:1px sold blue}/*只要具有href属性的元素*/

E[attr=val匹配所有attr属性等于“val”的E元素

a[href=”www.baidu.com”]{ color:red; }

~= 就是某个属性包含或者等于属性值

E[attr~=val]匹配所有attr属性包含“val”或者等于“val”的E元素

img[src ~= “images aa”]{ margin:10px;}
  <style>
    [class~=box] {
      width: 100px;
      height: 100px;
      border: 10px solid red;
    }
  </style>
</head>

<body>
  <div class="box aa">
    BOX
  </div>
</body>

|= 就是属性以‘val’整个开头或'val-'的元素

E[attr|=val]匹配所有attr属性以“val”整个开头或'val-'的E元素

img[alt |= buy]{width:300px; }
  <style>
    [class|= box] {
      width: 100px;
      height: 100px;
      border: 10px solid red;
    }
  </style>
</head>

<body>
  <div class="box-1">
    BOX
  </div>
</body>
  <style>
    [class|= box] {
      width: 100px;
      height: 100px;
      border: 10px solid red;
    }
  </style>
</head>

<body>
  <div class="box-daa ee">
    BOX
  </div>
</body>

E[attr1][att2=val]匹配所有拥有attr1属性同时具有attr2等于'val'的元素

a[href][title='图片']{text-decoration:underline;}

^=就是以什么字符开头

E[attr^=val]匹配所有attr属性以“val”开头E元素

img[src^='image'] {width:300px; }
  <style>
    [class^= box] {
      width: 100px;
      height: 100px;
      border: 10px solid red;
    }
  </style>
</head>

<body>
  <div class="boxdaa">
    BOX
  </div>
</body>

$=就是以什么字符结尾

E[attr$=val] 匹配所有attr属性以“val”结尾E元素

img[src$='image'] {width:300px; }
  <style>
    [class$= e] {
      width: 100px;
      height: 100px;
      border: 10px solid red;
    }
  </style>
</head>

<body>
  <div class="box-daa ee">
    BOX
  </div>
</body>
  <style>
    [src$= jpg] {
      width: 100px;
      height: 100px;
      border: 10px solid red;
    }
  </style>
</head>

<body>
 <img src="img/1.jpg" alt="">
 <img src="img/2.png" alt="">
</body>

E[attr*=val] 匹配所有attr属性包含“val”E元素

img[src*='image'] {width:300px; }
  <style>
    [src*= mg] {
      width: 100px;
      height: 100px;
      border: 10px solid blue;
    }
  </style>
</head>

<body>
 <img src="img/1.jpg" alt="">
 <img src="img/2.png" alt="">
</body>

3. CSS3新增的结构伪类选择器

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      list-style: none;
    }

    .box {
      width: 600px;
      margin: 20px auto;
    }

    .box>div {
      width: 600px;
      box-shadow: 0 0 10px 0 #000;
      /*盒阴影*/
    }

    p {
      width: 100px;
      height: 100px;
      margin: 10px auto;
      box-shadow: 0 0 10px 0 #000;
      font-size: 14px;
      text-align: center;
      color: #000;
    }

    p:last-child {
      background-color: skyblue;
      /*结构伪类选择器  父级中最后一个元素*/
    }
  </style>
</head>

<body>
  <div class="box">
    <div class="box1">box1
      <p>p11</p>
      <p>p12</p>
      <p>p13</p>
    </div>
    <div class="box2">box2
      <p>p21</p>
      <p>p22</p>
      <p>p23</p>
    </div>
  </div>
</body>

</html>
  1. p:first-of-type

    选择p,这些p必须为它们各自父级的所有p子元素的第1个

  2. p:last-of-type
    选择p,这些p必须为它们各自父级的所有p子元素的最后1个

  3. p:only-of-type
    选择p,这些p必须为它们各自父级的唯一的p(父级中还有其他类型元素)

  4. p:first-child
    选择p,这些p必须为它们各自父级的第一个子元素

  5. p:last-child
    选择p,这些p必须为它们各自父级的最后一个子元素

  6. p:only-child
    选择p,这些p必须为它们各自父级的唯一子元素 (父级中再无其他元素)

  7. p:nth-child(2)
    选择p,这些p必须为它们各自父级的第2个子元素 (

  8. p:nth-last-child(2)
    选择p,这些p必须为它们各自父级的倒数第2个子元素 没有其他标签用 找所有孩子

  9. p:nth-of-type(2)
    选择p,这些p必须为它们各自父级的所有p子元素的第2个 有其他标签用 只找p

  10. p:nth-last-of-type(2)
    选择p,这些p必须为它们各自父级的所有p子元素的倒数第2个

  11. E:first-line
    表示E元素中的第一行

  12. E:first-letter
    表示E元素中的第一个字符

  13. p:empty

    选择没有内容的p

  14. p:target

    选择当前被锚点激活的p,(点击就被激活)

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      list-style: none;
    }

    .box {
      width: 600px;
      margin: 20px auto;
    }

    .box>div {
      width: 600px;
      box-shadow: 0 0 10px 0 #000;
      /*盒阴影*/
    }

    p {
      width: 100px;
      height: 100px;
      margin: 10px auto;
      box-shadow: 0 0 10px 0 #000;
      font-size: 14px;
      text-align: center;
      color: #000;
    }

    p:target {
      background-color: purple;
      /*点击锚点激活p标签*/
    }
  </style>
</head>

<body>
  <a href="#bb">点击</a> <!--  锚点点击激活 -->
  <div class="box">
    <div class="box1">
      <span>box1</span>
      <p>p11</p>
      <p>p12</p>
      <p>p13</p>
    </div>
    <div class="box2">
      <span>box2</span>
      <span>box2</span>
      <p>p21</p>
      <p>p22</p>
      <p id="bb">p23</p> <!--  锚点点击激活 -->
    </div>
  </div>
</body>

</html>
  1. p:not(.on)

    选择除了.on的p,括号中选选择器

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      list-style: none;
    }

    .box {
      width: 600px;
      margin: 20px auto;
    }

    .box>div {
      width: 600px;
      box-shadow: 0 0 10px 0 #000;
      /*盒阴影*/
    }

    p {
      width: 100px;
      height: 100px;
      margin: 10px auto;
      box-shadow: 0 0 10px 0 #000;
      font-size: 14px;
      text-align: center;
      color: #000;
    }

    p:not(.aa){
      background-color:pink
    }
  </style>
</head>

<body>
  <div class="box">
    <div class="box1">
      <span>box1</span>
      <p>p11</p>
      <p class="aa"></p>
      <p>p13</p>
    </div>
    <div class="box2">
      <span>box2</span>
      <span>box2</span>
      <p>p21</p>
      <p>p22</p>
      <p>p23</p> 
    </div>
  </div>
</body>

</html>
  1. E:nth-child(odd)

匹配奇数行 同p:nth-child(2n-1)

  1. E:nth-child(even)

匹配偶数行 同p:nth-child(2n)

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      list-style: none;
    }

    .box {
      width: 600px;
      margin: 20px auto;
    }

    .box>div {
      width: 600px;
      box-shadow: 0 0 10px 0 #000;
      /*盒阴影*/
    }

    p {
      width: 100px;
      height: 100px;
      margin: 10px auto;
      box-shadow: 0 0 10px 0 #000;
      font-size: 14px;
      text-align: center;
      color: #000;
    }

    p:nth-child(even){
      background-color:pink
    }
  </style>
</head>

<body>
  <div class="box">
    <div class="box1">
      <span>box1</span>
      <p>p11</p>
      <p class="aa"></p>
      <p>p13</p>
      <p>p14</p>
    </div>
    <div class="box2">
      <span>box2</span>
      <span>box2</span>
      <p>p21</p>
      <p>p22</p>
      <p>p23</p> 
      <p>p24</p> 
    </div>
  </div>
</body>

</html>
  1. E:first-line 首行状态
  2. E::selection 被选中的文本的样式被修改(两个冒号)
    .text::selection{
      color:red;
    }

和表单有关的伪类

  1. :focus 处于被聚焦的状态
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    input:focus {
      border: 2px solid red;
    }

    .info {
      display: none;
    }

    input:focus+.info {
      /*  获取焦点.info显示 */
      display: block;
    }
  </style>
</head>

<body>
  <input type="text">
  <div class="info">请输入内容</div>
</body>

</html>
  1. :checked 表单被勾选的状态(几乎只有表单可以记录状态)
  2. :disabled 选择不能被操作的input框
  3. :enabled 选择能被操作的input框

4. 伪元素的使用

一个盒子(非单标签)有两个伪元素,叫before/after

正常的元素(标准的标签)是在标签的嵌套中使用添加内容,伪元素在content中添加内容,伪元素都是行内元素

4.1 伪元素的写法
E::before{
    content: "";  /* 激活伪元素 一定要有,内容可以为空“”*/
}
E::after{
    content:"";
}
  <style>
    div::before {
      content: "大";
      color: red;
      font-size: 26px;
    }

    div::after {
      content: "有点不容易";
      /* display:block;伪元素都是行内元素 */

      color: blue;
      font-size: 16px;
    }
  </style>
</head>

<body>
  <div>前端学习</div>
</body>
小三角
 <style>
    div::after {
      content: "";
      display: block;
      width: 0;
      height: 0;
      border: 30px solid transparent; 
      border-right-color: red;
    }
  </style>
</head>

<body>
  <div>前端学习</div>
</body>
content:(一定要加!!!)

content是伪元素的内容样式,必须写

string: 在节点之前插入文字

attr(attrname): 在节点中插入元素属性的值

url(媒体文件): 比如图片

content: url(https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png);

4.2 伪元素和伪类的区别:

伪元素是元素,伪类是状态/条件

4.3 伪元素和普通元素的区别

锦上添花(本意是替换空标签,比如加小三角)

几乎没有区别

写法不一样,(css添加的)

需要css渲染完成才知道有无伪元素,不影响布局结构,

百度爬虫爬不到伪元素,百度对空标签不友好

4.4 伪元素性质:
  1. 行内元素

  2. before在标签正文内容前,可以理解为标签开始内容的前面的元素

  3. after在标签的结尾之前,可以理解为正文内容之后

  4. 具有文本属性,

  5. CSS创建的抽象元素,是个虚拟的容器

  6. 多用于清除浮动

伪元素清除浮动
  <style>
    div {
      width: 500px;
      border: 3px solid red;
    }

    p {
      float: left;
      width: 100px;
      height: 50px;
      background-color: skyblue;
      font-size: 30px;
      margin: 0 20px;
      text-align: center;
    }

    /* span{  
      display:block;
      clear:both;
    } */
    div::after {
      /* 伪元素解决高度塌陷 清除浮动*/
      content: '';
      display: block;
      clear: both
    }
  </style>
</head>

<body>
  <div>
    <p></p>
    <p></p>
    <p></p>
    <!--   <span></span>之前解决高度塌陷在元素最后加一个块元素 ,这里把span变成块了 -->
  </div>

</body>

背景及圆角

1. 复习元素背景

背景属性background

1.1. 背景颜色 background-color
属性值:
  1. 颜色单词 red
  2. 十六进制 #f00
  3. rgb r:red g:green b:blue取值范围都是0-255
  4. rgba a:Alpha取值范围0-1,(透明度)
  5. HSL H:Hue色调 取值范围0-360 S:Saturation饱和度 取值范围0%-100% L:Lightness亮度 取值范围0%-100% .HSLA` Alpha透明度。 取值0~1之间。
  6. transparent: 默认,透明,不继承
  7. currentcolor: 当前色, currentcolor等于当前的color值
background-color:currentcolor;
1.2. 背景图片 background-image
属性值:
  1. url(“图片路径“)
  2. none 不使用背景图片(初始默认值)
多背景写法:

多个背景 以“,”隔开,不限个数

background-image: url(“1”) , url(“2”) ; 
图片格式:
  1. .jpg 不支持动画,不支持透明,渐进显示,颜色丰富,有损
  2. .png 不支持动画,支持透明度, 颜色更丰富,无损
  3. .gif 支持动画,256种颜色,2种透明度,渐进显示
  4. .webp支持动画,高压缩率,高加载速率,点个赞
background-image:url('图片路径');
1.3. 背景图片平铺 background-repeat
属性值:
  1. no-repeat不平铺,背景图片只显示一次
  2. repeat-x水平方向平铺
  3. repeat-y垂直方向平铺
  4. repeat默认值(水平垂直方向都平铺)
可以分解成两个属性:
  1. background-repeat-x
  2. . background-repeat-y
background-repeat: repeat-x;
1.4. 背景图片位置 background-position

可以设置两个值,如果只设置一个值,另一个默认为center

属性值:
  1. 关键词 top / right / bottom / right / center

  2. 属性值是两个关键词,一个的话第二个就是默认center

  3. 百分数 (水平% 竖直%) 百分比相对于父级容器

    如果只提供一个百分数值,所提供的这个值将用作水平值,垂直值将假设为50%

  4. 像素值 (水平px 竖直px)

可以分解成两个属性:
  1. background-position-x
  2. background-position-y
background-position:20px 30px;
1.5. 背景图片大小 background-size
属性值:
  1. 像素值,有两个,如果写一个,第二个就默认auto

  2. 百分数,按原始比例缩放; 百分比相对于父级容器

  3. cover 图片缩放,直到整个背景图片占满背景框

    保持宽高比不变,保证占满盒子,但是不一定能看到全部图

  4. contain 图片缩放,直到背景图片有一边触碰到背景边框就停止缩放

    保持宽高比不变,保证看清全图,但是不一定占满盒子

数值可以写一个可以写两个,如果只有一个第二个就是默认

  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      list-style: none;
    }

    .main {
      width: 400px;
      margin: 50px auto;
      background-color: #f3f3f3;
    }

    .main p {
      height: 40px;
      font-size: 20px;
      text-align: center;
      line-height: 50px;
    }

    .main div {
      width: 300px;
      height: 300px;
      box-shadow: 0 0 20px 0 blue;
      background: url(https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F411%2F0616111FP6%2F1106161FP6-0.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1652491360&t=b8a95b24ff4a24125001e09027ba8514) no-repeat;
      margin: 10px auto;
    }

    .main div:nth-of-type(2) {
      background-size: 100px 50px;
    }

    .main div:nth-of-type(3) {
      background-size: 50% 50%;
    }

    .main div:nth-of-type(4) {
      background-size: cover;
    }
  </style>
</head>

<body>
  <div class="main">
    <p>默认背景图片</p>
    <div></div>
    <p>background-size:100px 50px 的背景</p>
    <div></div>
    <p>background-size:50% 50% 的背景</p>
    <div></div>
    <p>background-size:cover的背景</p>
    <div></div>
  </div>
</body>
1.6. 背景图片关联 background-attachment
属性值:
  1. scroll 默认值,背景图片随着页面滚动而滚动,背景图片附着在容器里
  2. fixed 固定值,背景图片不随着页面滚动而滚动,背景图片附着在浏览器窗口里
  <style>
    body {
      padding-left: 180px;
      background: url('http://www.hshkyl.com/uploads/allimg/20/1-20091H01623638.jpg') no-repeat 0 0/contain;
      background-attachment: fixed;    /* 背景图片固定 */
    }
  </style>
</head>

<body>
  <div>
    <p>这是p标签1</p>
    <p>这是p标签2</p>
    <p>这是p标签3</p>
    <p>这是p标签4</p>
    <p>这是p标签5</p>
    <p>这是p标签6</p>
    <p>这是p标签100</p>
  </div>
1.7. 背景图片显示基点(起始域) background-origin
属性值:
  1. padding-box 默认值,从padding区域起始
  2. content-box 从内容部分起始
  3. border-box 从border区域起始
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      list-style: none;
    }

    .main {
      width: 400px;
      margin: 50px auto;
      background-color: #f3f3f3;
    }

    .main p {
      font-size: 20px;
      text-align: center;
      line-height: 50px;
    }

    .main div {
      width: 300px;
      height: 300px;
      box-shadow: 0 0 20px 0 blue;
      background: url(https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F411%2F0616111FP6%2F1106161FP6-0.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1652491360&t=b8a95b24ff4a24125001e09027ba8514) no-repeat;
      margin: 10px auto;
      border: 30px dashed deeppink;
      padding: 20px;
    }

    .main div:nth-of-type(2) {
      background-origin: content-box;
      background-size: 100% 100%;
    }

    .main div:nth-of-type(3) {
      background-origin: border-box;
    }

    .main div:nth-of-type(4) {
      background-size: cover;
    }
  </style>
</head>

<body>
  <div class="main">
    <p>background-origin默认背景图片的起始域为padding-box</p>
    <div></div>
    <p>background-origin从内容区content-box显示背景</p>
    <div></div>
    <p>background-origin从内容区border-box显示背景</p>
    <div></div>
  </div>
</body>
1.8. 背景图片裁剪区域 background-clip
属性值:
  1. border-box 默认值,从border区域开始显示背景,背景被裁剪到盒子边框
  2. content-box 从内部区域开始显示背景.背景被裁剪到内容区域
  3. padding-box 从padding区域开始显示背景,背景被裁剪到内边距
  4. text 相对于文本
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      list-style: none;
    }

    .main {
      width: 400px;
      margin: 50px auto;
      background-color: #f3f3f3;
    }

    .main p {
      font-size: 20px;
      text-align: center;
      line-height: 50px;
    }

    .main div {
      width: 300px;
      height: 300px;
      box-shadow: 0 0 20px 0 blue;
      background: url(https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F411%2F0616111FP6%2F1106161FP6-0.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1652491360&t=b8a95b24ff4a24125001e09027ba8514) no-repeat;
      margin: 10px auto;
      border: 30px dashed deeppink;
      padding: 20px;
    }

    .main div {
      background-origin: border-box;
      background-size: 80% 80%;
    }

    .main div:nth-of-type(1) {
      background-clip: border-box;
    }

    .main div:nth-of-type(2) {
      background-clip: padding-box;
    }

    .main div:nth-of-type(3) {
      background-clip: content-box;
    }
  </style>
</head>

<body>
  <div class="main">

    <p>background-clip从border默认</p>
    <div></div>
    <p>background-clip从padding</p>
    <div></div>
    <p>background-clip从content</p>
    <div></div>
  </div>
</body>
/*text相对于文本*/
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      list-style: none;
    }

    .main {
      width: 400px;
      margin: 50px auto;
      background-color: #f3f3f3;
    }

    .main p {
      font-size: 20px;
      text-align: center;
      line-height: 50px;
    }

    .main div {
      width: 300px;
      height: 300px;
      box-shadow: 0 0 20px 0 blue;
      background: url(https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F411%2F0616111FP6%2F1106161FP6-0.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1652491360&t=b8a95b24ff4a24125001e09027ba8514) no-repeat;
      margin: 10px auto;
      border: 30px dashed deeppink;
      padding: 20px;
    }

    .main div {
      background-origin: border-box;
      background-size: 80% 80%;
    }

    .main div:nth-of-type(1) {
      background-clip: text;
      -webkit-background-clip: text;
      color: transparent;
      font-size: 100px;
      text-align: center;
      font-weight: bolder;
      /* transition: 3s; */
      animation: run 3s infinite alternate;
    }

    /* .main div:nth-of-type(1):hover{
      background-position: -30px 0;
    } */
    @keyframes run {
      0% {
        background-position: 20px 0;
      }

      100% {
        background-position: -30px 0;
      }
    }
  </style>
</head>
<body>
  <div class="main">
    <p>background-clip从border默认</p>
    <div>你好</div>
  </div>
</body>
1.9. 背景的综合样式
background:color image repeat position/size attachment origin clip;

省略部分会被默认值替代,
position和size之间要用/分割

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

推荐阅读更多精彩内容