首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >css是否仅显示半个文本框?

css是否仅显示半个文本框?
EN

Stack Overflow用户
提问于 2015-10-22 21:39:28
回答 1查看 797关注 0票数 1

刚从codepen得到这个搜索按钮,试着把它放在我的网站上,然后轰隆,不起作用!我搞得一团糟,看不出有什么问题,

发生的事情是动画播放得很可爱!将加载搜索栏,但在键入时,您只能看到一半的文本,请参见下图

下面是我的代码

代码语言:javascript
复制
$brand: #b3c33a;
$speed: 0.5s;

body {
    color: $brand;
    background-color: #333;
}

.search {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: -300px;

    width: 600px;
}

svg {
    position: absolute;
    transform: translateX(-246px);
    width: 600px;
    height: auto;
    stroke-width: 8px;
    stroke: $brand;
    stroke-width: 1px;
    stroke-dashoffset: 0;
    stroke-dasharray: 64.6 206.305;
    transition: all 0.5s ease-in-out;
    stroke-linejoin: round;
    stroke-linecap: round;
}

.input-search {
    position: absolute;
    width: calc(100% - 148px);
    height: 64px;
    top: 0;
    right: 20px;
    bottom: 0;
    left: 0;
    border: none;
    background-color: transparent;
    outline: none;
    padding: 20px;
    font-size: 50px;
}

.search-label {
    position: absolute;
    display: block;
    width: 108px;
    height: 108px;
    top: 0;
    left: 50%;
    margin-left: -54px;
    z-index: 100;
    transition: $speed ease-in-out;
}

.isActive {
    .search-label {
        transform: translateX(246px);
    }
    svg {
        stroke-dashoffset: -65;
        stroke-dasharray: 141.305 65;
        transform: translateX(0);
    }
    &.full svg {
        stroke-dashoffset: -65;
        stroke-dasharray: 141.305 65;
        transform: translateX(0);
    }
}

.full {
    .search-label {
        transform: translateX(246px);
    }
    svg {
        stroke-dashoffset: 0;
        stroke-dasharray: 64.6 206.305;
        transform: translateX(0);
    }
}
代码语言:javascript
复制
<div class="col-md-10">

  <div class="search">
    <svg version="1.1" viewBox="0 0 142.358 24.582">
    <path id="search-path" fill="none" d="M131.597,14.529c-1.487,1.487-3.542,2.407-5.811,2.407
        c-4.539,0-8.218-3.679-8.218-8.218s3.679-8.218,8.218-8.218c4.539,0,8.218,3.679,8.218,8.218
        C134.004,10.987,133.084,13.042,131.597,14.529c0,0,9.554,9.554,9.554,9.554H0"/>
    </svg>
    <label for="search" class="search-label"></label>
    <input type="search" id="search" autocomplete="off" class="input-search"/>
</div>
<script type="text/javascript">
/*
Inspired by Dribble "Search..."
  By: Anish Chandran
  Link: http://drbl.in/nRxe
*/

var searchField = $('.search');
var searchInput = $("input[type='search']");

var checkSearch = function(){
  var contents = searchInput.val();
  if(contents.length !== 0){
     searchField.addClass('full');
  } else {
     searchField.removeClass('full');
  }
};

$("input[type='search']").focus(function(){
  searchField.addClass('isActive');
}).blur(function(){
  searchField.removeClass('isActive');
  checkSearch();
});
</script>

</div>

仅CSS (非scss)

代码语言:javascript
复制
body {
  color: #b3c33a;
  background-color: #333;
}

.search {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -300px;
  margin-top: -54px;
  width: 600px;
}

svg {
  position: absolute;
  transform: translateX(-246px);
  width: 600px;
  height: auto;
  stroke-width: 8px;
  stroke: #b3c33a;
  stroke-width: 1px;
  stroke-dashoffset: 0;
  stroke-dasharray: 64.6 206.305;
  transition: all 0.5s ease-in-out;
  stroke-linejoin: round;
  stroke-linecap: round;
}

.input-search {
  position: absolute;
  width: calc(100% - 148px);
  height: 64px;
  top: 0;
  right: 20px;
  bottom: 0;
  left: 0;
  border: none;
  background-color: transparent;
  outline: none;
  padding: 20px;
  font-size: 50px;
}

.search-label {
  position: absolute;
  display: block;
  width: 108px;
  height: 108px;
  top: 0;
  left: 50%;
  margin-left: -54px;
  z-index: 100;
  transition: 0.5s ease-in-out;
}

.isActive .search-label {
  transform: translateX(246px);
}
.isActive svg {
  stroke-dashoffset: -65;
  stroke-dasharray: 141.305 65;
  transform: translateX(0);
}
.isActive.full svg {
  stroke-dashoffset: -65;
  stroke-dasharray: 141.305 65;
  transform: translateX(0);
}

.full .search-label {
  transform: translateX(246px);
}
.full svg {
  stroke-dashoffset: 0;
  stroke-dasharray: 64.6 206.305;
  transform: translateX(0);
}
EN

回答 1

Stack Overflow用户

发布于 2015-10-22 21:57:21

这不是纯CSS,因此不能在浏览器中正确输出。他们使用了SASS (http://sass-lang.com/),所以如果你想使用它,你需要首先将SASS编译成CSS,或者寻找纯CSS输出(如果你从Codepen复制它,它应该是可用的)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33282423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档