CSS图片文字排版01

素颜马尾好姑娘i 2022-11-27 12:11 285阅读 0赞

实现思路

通过clip-path属性剪切不同时刻图片大小,开始,给h2,p,a标签影藏并使用transform: translateY()属性,设置不同的偏移量,通过:hover选择器,当鼠标划入的时候,缩小图片大小,将transform: translateY()偏移量设置为0;通过transition设置过渡时间来实现动画效果。
实现效果
在这里插入图片描述

HTML代码

  1. <div class="content-top">
  2. <div class="header">
  3. <h3>北海风景</h3>
  4. <p class="header-info">这些年我们一起看过的风景</p>
  5. </div>
  6. <div class="room">
  7. <div class="box">
  8. <div class="imgBx">
  9. <img src="img/guantouling2.png" />
  10. </div>
  11. <div class="content">
  12. <h2>冠头岭</h2>
  13. <p>
  14. 记不起第一次和谁相遇在夕阳下的冠头岭,只记得那时的夕阳和大海的微风轻轻吹在脸上,、那感觉仿佛此刻连空气都是甜的
  15. </p>
  16. <a href="index_foodview.html#gtl">Read More</a>
  17. </div>
  18. </div>
  19. <div class="box">
  20. <div class="imgBx">
  21. <img src="img/qiaogang2.png" />
  22. </div>
  23. <div class="content">
  24. <h2>桥港风情街</h2>
  25. <p>
  26. 记不起,第一次和谁相约在别有风味的桥港风情街,只记得那一刻,走进糖水店将糖水慢慢吸入嘴里的那刻,
  27. 味蕾的微微触动,仿佛世界都是甜甜的感觉
  28. </p>
  29. <a href="index_foodview.html#qg">Read More</a>
  30. </div>
  31. </div>
  32. <div class="box">
  33. <div class="imgBx">
  34. <img src="img/view5.png" />
  35. </div>
  36. <div class="content">
  37. <h2>海滩公园</h2>
  38. <p>
  39. 记不起,第一次何时来到海滩公园,只记得那时三五好友,并肩靠在海栏处,看着大家玩沙戏水,微风吹到脸庞,
  40. 仿佛是大自然的触动,那感觉微微入醉
  41. </p>
  42. <a href="index_foodview.html#htgy">Read More</a>
  43. </div>
  44. </div>
  45. <div class="box">
  46. <div class="imgBx">
  47. <img src="img/laojie2.png" />
  48. </div>
  49. <div class="content">
  50. <h2>老街</h2>
  51. <p>
  52. 还记得,那个暑假第一次来到北海,这个充满好奇的神秘地方,来校和舍友去的北海第一个景点就是北海老街,老式的建筑,
  53. 别有风味的地板,仿佛把自己带到了解放初期。
  54. </p>
  55. <a href="index_foodview.html#lj">Read More</a>
  56. </div>
  57. </div>
  58. </div>
  59. </div>

CSS代码

  1. <style type="text/css"> .content-top{
  2. font-family:"微软雅黑";
  3. width:100%;
  4. height: auto;
  5. }
  6. .header{
  7. width: 100%;
  8. height: 100px;
  9. border-bottom:3px solid red;/*标题下划线*/
  10. text-align: center;
  11. font-size:32px;
  12. line-height: 30px;
  13. }
  14. .header-info{
  15. color:gray;
  16. font-size:20px;
  17. margin-top:-20px;
  18. }
  19. /*图片*/
  20. .room{
  21. position: relative;
  22. width: 100%;
  23. height:auto;
  24. display: flex;/*弹性布局,直接子元素排成一行*/
  25. flex-wrap: wrap;/*超出自动换行*/
  26. justify-content: space-around;/*周围留白*/
  27. /* border:2px solid red; */
  28. }
  29. .room .box{
  30. position: relative;
  31. width: 300px;
  32. height: 400px;
  33. margin: 20px 0;
  34. box-sizing: border-box;/*padding和border的值就不会在影响元素的宽高*/
  35. overflow: hidden;/*超出隐藏*/
  36. }
  37. .room .box .imgBx{
  38. position: absolute;
  39. top:0;
  40. left: -20px;
  41. width: 100%;
  42. height: 100%;
  43. background-color: #000;
  44. clip-path: circle(400px at center 100px);/*在图片中心截取400px大小的圆*/
  45. transition: 0.5s;/*0.5s过渡*/
  46. transition-delay: 0.5s;/*延迟0.5s*/
  47. }
  48. .room .box:hover .imgBx{
  49. clip-path: circle(80px at center 100px);/*在图片中心窃取一个80px大小的圆*/
  50. transition-delay: 0s;
  51. }
  52. .room .box:hover .imgBx img{
  53. position: absolute;
  54. top: 0;
  55. left: 0;
  56. width: 100%;
  57. height: 80%;
  58. object-fit: cover;/*保持图片原有尺寸比例*/
  59. }
  60. .room .box .content{
  61. position: absolute;
  62. left: 0;
  63. bottom: 0;
  64. width: 100%;
  65. height: 55%;
  66. padding: 20px;
  67. box-sizing: border-box;
  68. text-align: center;
  69. }
  70. .room .box .content h2{
  71. margin: 0;
  72. padding: 0;
  73. }
  74. .room .box .content a{
  75. text-decoration: none;
  76. background: #000;
  77. color: #fff;
  78. padding: 5px;
  79. display: inline-block;
  80. }
  81. .room .box .content h2, .room .box .content a{
  82. opacity: 0;/*影藏*/
  83. transition: 0.5s;
  84. transform: translateY(20px);/*位置在Y轴偏移20px*/
  85. }
  86. .room .box .content p{
  87. text-indent: 2em;/*首行缩进字体2倍*/
  88. opacity: 0;
  89. transition: 0.5s;
  90. transform: translateY(20px);
  91. }
  92. .room .box:hover .content h2{
  93. opacity: 1;
  94. transform: translateY(0px);
  95. transition-delay: 0.5s;
  96. }
  97. .room .box:hover .content p{
  98. opacity: 1;
  99. transform: translateY(0px);
  100. transition-delay: 0.7s;/*延迟0.7s*/
  101. }
  102. .room .box:hover .content a{
  103. opacity: 1;
  104. transform: translateY(0px);
  105. transition-delay: 0.9s;
  106. }
  107. </style>

发表评论

表情:
评论列表 (有 0 条评论,285人围观)

还没有评论,来说两句吧...

相关阅读

    相关 CSS图片文字排版03

    实现思路 主要技术主要使用CSS属性visibility: hidden;将p标签文字隐藏起来,再通过:hover选择器来改变类card的高度,将p标签文字visibil

    相关 文字排版样式

    <template> <view class="content"> 律师工作是知识性和智慧性工作。目前人们选择职业时,不仅希望得到较高的收入

    相关 CSS文字排版

    时间:2017年4月27日13:35:27 [《我的博客地图》][Link 1]     对于前端开发人员来说,虽然大部分时间用来处理 页面布局 和 业务逻辑 问题,但对于

    相关 Bootstrap文字排版

    bootstrap中的文字排版就像word的标题一标题二。。。一样,这样可以拿来区分很多字节,简要的代码如下 (注意bootstrap页面中每个都会引入 这是基础样式!!