Maison  >  Article  >  interface Web  >  Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

阿神
阿神original
2017-03-16 09:35:162928parcourir

WeUI est un kit d'interface utilisateur développé par WeChat Web Service. Il contient actuellement 12 modules (Button, Cell, Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?, Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?, Progress, Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?, Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?, Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?, Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?, Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?, Tab, Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?).

Page de démonstration : https://weui.io

Page Github : https://github.com/weui/weui

Parlons des compétences CSS que j'ai acquises grâce à WeUI.

1.Button

À partir de là, j'ai commencé à remarquer que dans la mise en œuvre de WeUI, de nombreuses frontières sont tracées en utilisant :before, :after

.weui_btn:after {
    content: " ";
    width: 200%;
    height: 200%;
    position: absolute;
    top: 0;
    left: 0;
    border: 1px solid rgba(0, 0, 0, 0.2);
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    box-sizing: border-box;
    border-radius: 10px;
}

. Ceci est fait pour garantir que 1px est bien 1pixel sur l'écran Retina

2.Cell

2.1.weui_cell

.weui_cell {
    padding: 10px 15px;
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}
En voyant cela, j'ai découvert que WeUI utilise beaucoup de mise en page flexible. J'ai déjà été confus quant à la façon d'implémenter une bordure avec des espaces sur la gauche entre les éléments de la liste. La propriété border ne prend pas en charge l'affichage d'une seule partie d'un côté. Dois-je insérer
?

L'implémentation de WeUI est la suivante : utiliser .weui_cells:before.

gauche : 15px (poste vacant à gauche) et débordement : caché (masquer l'excédent à droite) de .weui_cells_title peut afficher la bordure avec les postes vacants

. L'implémentation de la flèche droite à la fin de l'élément de liste s'est avérée être une bordure tournée de 45 degrés par weui_cell_ft::after. Je pensais utiliser iconfont.

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

2.3.Radio. (élément de liste à sélection unique)

.weui_cell:before {
    content: " ";
    position: absolute;
    left: 15px;
    top: 0;
    width: 100%;
    height: 1px;
    border-top: 1px solid #D9D9D9;
    color: #D9D9D9;
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: scaleY(0.5);
    transform: scaleY(0.5);
}

Un

.weui_cells_access .weui_cell_ft:after {
    content: " ";
    display: inline-block;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    height: 6px;
    width: 6px;
    border-width: 2px 2px 0 0;
    border-color: #C8C8CD;
    border-style: solid;
    position: relative;
    top: -2px;
    top: -1px;
    margin-left: .3em;
}
caché est intégré à l'intérieur de chaque ligne La méthode de masquage est :

Un span.input.weui_check et .weui_icon_checked sont placés derrière chaque input.weui_check pour afficher un chèque

单选Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

2.4.Checkbox (check List item)

<input type="radio" class="weui_check" name="radio1">

.weui_check {
    position: absolute;
    left: -9999em;
}
la case à cocher est masquée comme le bouton radio ci-dessus.

<span class="weui_icon_checked"></span>
Ce qui est plus surprenant pour moi, c'est que les effets sélectionnés et non sélectionnés sont tous deux obtenus avec une police d'icônes. Je pensais que l'effet non sélectionné était obtenu avec une bordure, et l'effet sélectionné utilise une police d'icônes de contrôle avec un centrage horizontal et vertical
.weui_cells_radio .weui_check:checked + .weui_icon_checked:before {
    display: block;
    content: &#39;\EA08&#39;;
    color: #09BB07;
    font-size: 16px;}

. 2.5.Commutateur (commutateur)

复选Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

<input type="checkbox" class="weui_check" name="checkbox1">
Je pensais que cet effet était difficile à obtenir avant, mais après avoir vu l'implémentation de weui, il suffisait de CSS

/* 选中效果 */.weui_cells_checkbox .weui_check:checked + .weui_icon_checked:before {
    content: &#39;\EA06&#39;;
    color: #09BB07;}/* 未选中效果 */.weui_cells_checkbox .weui_icon_checked:before {
    content: &#39;\EA01&#39;;
    color: #C9C9C9;
    font-size: 23px;
    display: block;}
! Parmi eux, .weui_switch fournit une bordure, la couleur d'arrière-plan est #DFDFDF (gris foncé) lorsqu'elle n'est pas sélectionnée, et #04BE02 (vert) lorsqu'elle est sélectionnée

. .weui_switch:before fournit le #FDFDFD gris clair à l'intérieur de la bordure. Lorsqu'elle est sélectionnée, scale(0) rétrécit et disparaît.

.weui_switch :after fournit un bouton circulaire Une fois sélectionné, déplacez-vous de 20 px vers la droite.

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?. L'effet est le suivant :

<input class="weui_switch" type="checkbox">

2.6.Formulaire (formulaire)

.weui_switch {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  position: relative;
  width: 52px;
  height: 32px;
  border: 1px solid #DFDFDF;
  outline: 0;
  border-radius: 16px;
  box-sizing: border-box;
  background: #DFDFDF;}.weui_switch:checked {
  border-color: #04BE02;
  background-color: #04BE02;}.weui_switch:before {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 30px;
  border-radius: 15px;
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
  border-bottom-right-radius: 15px;
  border-bottom-left-radius: 15px;
  background-color: #FDFDFD;
  -webkit-transition: -webkit-transform .3s;
  transition: -webkit-transform .3s;
  transition: transform .3s;
  transition: transform .3s, -webkit-transform .3s;}.weui_switch:checked:before {
  -webkit-transform: scale(0);
  transform: scale(0);}.weui_switch:after {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  background-color: #FFFFFF;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
  -webkit-transition: -webkit-transform .3s;
  transition: -webkit-transform .3s;
  transition: transform .3s;
  transition: transform .3s, -webkit-transform .3s;}.weui_switch:checked:after {
  -webkit-transform: translateX(20px);
  transform: translateX(20px);}

Le modèle d'entrée="[0-9]* limite l'entrée aux seuls nombres de 0 à 9 (la valeur du modèle est une expression régulière).

Input[type="number"] affichera par défaut les flèches haut et bas à l'extrême droite sur Chrome. WeUI désactive les flèches via le code suivant. Ce code ne peut pas être vu dans l'outil de développement de Chrome et ne peut être visualisé qu'à partir de CSS. il m'a fallu beaucoup de temps pour le chercher.

Cliquer sur input[type="number"] ouvrira automatiquement le clavier numérique sur iOS.

2.7.Upload (Upload)Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

<input class="weui_input" type="number" pattern="[0-9]*" placeholder="请输入qq号">

WeUI utilise la méthode simple suivante pour implémenter le calque gris devant l'image. Le positionnement absolu plus top:0; bottom:0; .

.weui_input::-webkit-outer-spin-button,.weui_input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;}

L'état de téléchargement de l'image utilise une méthode de centrage classique (horizontale et verticale), utilisant top: 50% (positionnant la bordure supérieure de l'élément à 50% de l'élément parent) et transform: translationY(-50%) (faisant bouger l'élément vers le haut 50% de la hauteur de l'élément lui-même).

La méthode de centrage vertical que j'utilise habituellement est la suivante. Le centrage horizontal est similaire

. Le bouton de téléchargement final :Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

input[type="file"] déclenchera automatiquement le menu pour sélectionner "Photo" ou "Photo" sur iOS.

.weui_uploader_status:before {
    content: " ";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.5);}
La boîte est dessinée en utilisant .weui_uploader_input_wrp, et le signe plus est dessiné en utilisant .weui_uploader_input_wrp:before et:after.

    真正的input利用opacity:0隐藏起来了.

.weui_uploader_input_wrp:before {
    width: 2px;
    height: 39.5px;
}
.weui_uploader_input_wrp:after {
    width: 39.5px;
    height: 2px;
}
.weui_uploader_input_wrp:before,
.weui_uploader_input_wrp:after {
    content: " ";
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    background-color: #D9D9D9;
}
.weui_uploader_input {
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);

2.8.Form Error (Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?报错)

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?报错

<input class="weui_input" type="date" value="">
<input class="weui_input" type="datetime-local" value="" placeholder="">

    在iOS上, 点选input[type="date"]会出现"年-月-日"的Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?框, 点选input[type="datetime-local"]会出现"月-日-上午/下午-时-分"的Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?框.

2.9.Select (Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?)

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    电话号码+86位置的右箭头和分割线是用:before和:after绘制的.

3.Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

<p id="toast"   style="max-width:90%">
    <p class="weui_mask_transparent"></p>
    <p class="weui_toast">
        <i class="weui_icon_toast"></i>
        <p class="weui_toast_content">已完成</p>
    </p>
</p>

    .weui_mask_transparent就是一个position:fixed占满全屏的透明幕布, 让用户无法操作界面.

    .weui_toast才是页面中间的黑块.

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ? Loading

    竟然是纯用HTML+CSS(animation+transition)实现的.

<p id="loadingQuelles connaissances peuvent être acquises grâce au WeUI de WeChat ?" class="weui_loading_toast" style="/* display: none; */">
    <p class="weui_mask_transparent"></p>
    <p class="weui_toast">
        <p class="weui_loading">
            <p class="weui_loading_leaf weui_loading_leaf_0"></p>
            <p class="weui_loading_leaf weui_loading_leaf_1"></p>
            <p class="weui_loading_leaf weui_loading_leaf_2"></p>
            <p class="weui_loading_leaf weui_loading_leaf_3"></p>
            <p class="weui_loading_leaf weui_loading_leaf_4"></p>
            <p class="weui_loading_leaf weui_loading_leaf_5"></p>
            <p class="weui_loading_leaf weui_loading_leaf_6"></p>
            <p class="weui_loading_leaf weui_loading_leaf_7"></p>
            <p class="weui_loading_leaf weui_loading_leaf_8"></p>
            <p class="weui_loading_leaf weui_loading_leaf_9"></p>
            <p class="weui_loading_leaf weui_loading_leaf_10"></p>
            <p class="weui_loading_leaf weui_loading_leaf_11"></p>
        </p>
        <p class="weui_toast_content">数据加载中</p>
    </p></p>
.weui_loading_leaf {
  position: absolute;
  top: -1px;
  opacity: 0.25;}.weui_loading_leaf:before {
  content: " ";
  position: absolute;
  width: 8.14px;
  height: 3.08px;
  background: #d1d1d5;
  box-shadow: rgba(0, 0, 0, 0.0980392) 0px 0px 1px;
  border-radius: 1px;
  -webkit-transform-origin: left 50% 0px;
          transform-origin: left 50% 0px;}.weui_loading_leaf_0 {
  -webkit-animation: opacity-60-25-0-12 1.25s linear infinite;
          animation: opacity-60-25-0-12 1.25s linear infinite;}.weui_loading_leaf_0:before {
  -webkit-transform: rotate(0deg) translate(7.92px, 0px);
          transform: rotate(0deg) translate(7.92px, 0px);}/* ... */.weui_loading_leaf_11 {
  -webkit-animation: opacity-60-25-11-12 1.25s linear infinite;
          animation: opacity-60-25-11-12 1.25s linear infinite;}.weui_loading_leaf_11:before {
  -webkit-transform: rotate(330deg) translate(7.92px, 0px);
          transform: rotate(330deg) translate(7.92px, 0px);}@-webkit-keyframes opacity-60-25-0-12 {
  0% {
    opacity: 0.25;
  }
  0.01% {
    opacity: 0.25;
  }
  0.02% {
    opacity: 1;
  }
  60.01% {
    opacity: 0.25;
  }
  100% {
    opacity: 0.25;
  }}/* ... */@-webkit-keyframes opacity-60-25-11-12 {
  0% {
    opacity: 0.895958333333333;
  }
  91.6767% {
    opacity: 0.25;
  }
  91.6867% {
    opacity: 1;
  }
  51.6767% {
    opacity: 0.25;
  }
  100% {
    opacity: 0.895958333333333;
  }}

4. Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

<p class="weui_dialog_confirm" id="dialog1">
    <p class="weui_mask"></p>
    <p class="weui_dialog">
        <p class="weui_dialog_hd"><strong class="weui_dialog_title">弹窗标题</strong></p>
        <p class="weui_dialog_bd">自定义弹窗内容,居左对齐显示,告知需要确认的信息等</p>
        <p class="weui_dialog_ft">
            <a href="javascript:;" class="weui_btn_dialog default">取消</a>
            <a href="javascript:;" class="weui_btn_dialog primary">确定</a>
        </p>
    </p></p>

    你能看到的边框都是用:after实现的.

5. Progress

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    略. ( *・ω・)✄╰ひ╯

6. Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    略. ( *・ω・)✄╰ひ╯

7. Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    略. ( *・ω・)✄╰ひ╯

8. Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

<p id="actionSheet_wrap">
    <p class="weui_mask_transition" id="mask" style="display: none;"></p>
    <p class="weui_actionsheet" id="weui_actionsheet">
        <p class="weui_actionsheet_menu">
            <p class="weui_actionsheet_cell">示例菜单</p>
            <p class="weui_actionsheet_cell">示例菜单</p>
            <p class="weui_actionsheet_cell">示例菜单</p>
            <p class="weui_actionsheet_cell">示例菜单</p>
        </p>
        <p class="weui_actionsheet_action">
            <p class="weui_actionsheet_cell" id="actionsheet_cancel">取消</p>
        </p>
    </p>
</p>

    值得一提的是, 页面下方的Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?始终是显示的, 只不过平时通过transform: translateY(100%)隐藏了起来, 显示时用translateY(0). 这方法无需JS就可以自适应任意高度的Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?.

.weui_actionsheet {
    position: fixed;
    left: 0;
    bottom: 0;
    -webkit-transform: translate(0, 100%);
    transform: translate(0, 100%);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    z-index: 2;
    width: 100%;
    background-color: #EFEFF4;
    -webkit-transition: -webkit-transform .3s;
    transition: -webkit-transform .3s;
    transition: transform .3s;
    transition: transform .3s, -webkit-transform .3s;
}
.weui_actionsheet_toggle {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
}

9. Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    一堆iconfont. ( *・ω・)✄╰ひ╯

10. Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    略. ( *・ω・)✄╰ひ╯

11. Tab

    Navbar:

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?:

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    略. ( *・ω・)✄╰ひ╯

12. Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    无焦点状态:

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?

    有焦点状态:

Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ? with Candidates

<p class="weui_search_bar weui_search_focusing" id="search_bar">
    <form class="weui_search_outer">
        <!-- 搜索框有焦点时的搜索图标, 搜索框和清空按钮 -->
        <p class="weui_search_inner">
            <i class="weui_icon_search"></i>
            <input type="search" class="weui_search_input" id="search_input" placeholder="搜索" required="">
            <a href="javascript:" class="weui_icon_clear" id="search_clear"></a>
        </p>
        <!-- 搜索框没有焦点时的显示 -->
        <label for="search_input" class="weui_search_text" id="search_text">
            <i class="weui_icon_search"></i>
            <span>搜索</span>
        </label>
    </form>
    <!-- 搜索框有焦点时的取消键 -->
    <a href="javascript:" class="weui_search_cancel" id="search_cancel">取消</a>
</p>

    这里我最好奇的是, 当用户点击搜索框时, 弹出的键盘上右下角的按键是"搜索"而不是"换行".

    我测试的效果是, 在微信中点击搜索框时键盘显示"搜索"按键, 在Safari中打开时则显示"换行".

    这就很诡异了, 说明微信做了什么手脚. 难道与JS有关?

    但是我在网上搜索了下, 发现只要确保input[type="search"]被form包围, 且form有action属性即可. 示例:

<form action="">
  <input type="search" name="search" placeholder="search">
</form>

    但是WeUI的实现中,form并没有action属性, 所以暂时不知道WeUI是如何做的.

相关文章:

通过微信WEUI实现图片Quelles connaissances peuvent être acquises grâce au WeUI de WeChat ?,后台PHP该如何处理?

Angularjs整合微信UI(weui)

Encapsulation de couche contextuelle d'invite d'informations communes JS pour les applications WEUI

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn