css resize属性实现div拉伸

效果图:
css resize属性实现div拉伸_第1张图片
核心点:

  1. div宽度自适应

    宽度自适应 width
    默认情况下, 块级元素不设置宽度, 默认为整个屏幕宽度或者和父级同宽
    如果元素脱离了文档流(浮动或者定位), 那么元素的宽度由元素的内容决定

  2. css resize属性

    相关介绍: MDN
    resize 生效的条件: 不支持内联元素; 块级元素,需要overflow属性的计算值不是visible。

整体布局

<div class="container">
  
  <div class="resizable">div>
  
  <div class="content">contentdiv>
div>

container 父容器, 用于控制脱离文档流, 然其宽度随着拉伸大小而决定
resizable 可以拉伸的容器, 从而可以控制父容器的宽度
content 真正展示的容器, 其宽度随着父级而定

基础知识, 拉伸区域的实现
右下角出现可拉伸图标

.content {
  width: 200px;
  height: 200px;
  resize: horizontal;
  cursor: ew-resize;
  overflow: hidden; // 必须要配合overflow来使用resize, 否则拉伸图标无法显示
  border: 1px solid red;
}
<div class="content">contentdiv>

css resize属性实现div拉伸_第2张图片
限制拉伸尺寸

通过设置min-width、min-height、max-width和max-height可以限制拉伸尺寸。

所有代码

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>Documenttitle>
    <style>
      
      .container {
        position: relative;
        /* 脱离文档流 */
        float: left; 
      }

      /*  */
      .resizable {
        width: 200px;
        height: 200px;
        overflow: scroll;
        resize: horizontal;
        cursor: ew-resize;
        opacity: 0;
        min-width: 200px; // 盒子宽度最小为200px
      }
        /* 更改拖拽图标的大小和父容器一样大 */
      .resizable::-webkit-scrollbar {
        width: 20px;
        height: 200px;
      }

      /* 使用定位, 将容器定位到父容器的正中间, 跟着父容器的大小改变而改变 */
      .content {
        margin: 0;
        height: 200px;
        position: absolute;
        top: 0;
        /* 留出5px为了鼠标放上去可以显示拖拽 */
        right: 5px;
        bottom: 0;
        left: 0;
        border: 1px solid;
      }
    style>
  head>

  <body>
    <div class="container">
      
      <div class="resizable">div>
      
      <div class="content">contentdiv>
    div>
  body>
html>

层级图
css resize属性实现div拉伸_第3张图片

你可能感兴趣的:(#,CSS学习,HTML-CSS学习,css3,css)