Emojione Area defined textarea didn't except any overwritten CSS 修复

Emojione Area defined textarea didn't except any overwritten CSS fix

我在我的项目中使用最新的表情区。我的 textarea 是这样的:

<textarea id="emojionearea" style="display:none"></textarea>

我正在使用最新的 jQuery v3.4.1 min 库。我的代码是这样的:

$("#emojionearea").emojioneArea();

但是我的问题出现在这里。我无法再更改 textarea 的样式。我尝试了一些 CSS 甚至 !important 来覆盖默认样式,但没有任何反应。我想要以下 CSS:

#emojionearea {
    width: 100vw!important;
    position: fixed!important;
    bottom: 0!important;
}

那么,有什么办法吗?提前致谢。

这样不行。将您的文本区域包含在 div 中并更改 div 的属性以更改文本区域的属性。

$(document).ready(function(){
$("#myTextarea").emojioneArea(
{
pickerPosition  :"bottom"
}
);
});
.myDiv{
width:20rem;
height:10rem;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/emojionearea/3.4.1/emojionearea.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/emojionearea/3.4.1/emojionearea.css" rel="stylesheet"/>


<div class="myDiv">
<textarea id="myTextarea">

</textarea>
</div>

你必须做这样的事情来克服这个问题:

.myCustomCss {
   width: 100vw!important;
   position: fixed!important;
   bottom: 0!important;
}

完成!其余代码没问题。只需将您的 textarea 更新为:

<textarea class="myCustomCss" id="emojionearea"></textarea>

注意:您不能将 CSS 直接添加到您的 textarea。而是将所有 CSS 嵌套在 class 中,然后在声明其 id 之前将其添加到 textarea 中。为什么?这就是所谓的继承。

HTML 文件的顶部添加样式并使用自定义 class 名称覆盖 emojioneArea plugin

的样式

$("#myTextarea").emojioneArea({
  pickerPosition: "bottom",
  filtersPosition: "bottom",
  tonesStyle: "square",
  shortnames: true,
  tones:false,
  search:false,
  placeholder: "Message (optional)",
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/emojionearea/3.4.2/emojionearea.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/emojionearea/3.4.2/emojionearea.css" rel="stylesheet"/>

<style>
.custom{
   width:500px;
   height:70px;
   background-color: rgb(0, 141, 228, 0.1);
}
</style>

<textarea class="custom" id="myTextarea"></textarea>