div.nsl-container[data-align="left"] {
text-align: left;
}
div.nsl-container[data-align="center"] {
text-align: center;
}
div.nsl-container[data-align="right"] {
text-align: right;
}
div.nsl-container div.nsl-container-buttons a[data-plugin="nsl"] {
text-decoration: none;
box-shadow: none;
border: 0;
}
div.nsl-container .nsl-container-buttons {
display: flex;
padding: 5px 0;
}
div.nsl-container.nsl-container-block .nsl-container-buttons {
display: inline-grid;
grid-template-columns: minmax(145px, auto);
}
div.nsl-container-block-fullwidth .nsl-container-buttons {
flex-flow: column;
align-items: center;
}
div.nsl-container-block-fullwidth .nsl-container-buttons a,
div.nsl-container-block .nsl-container-buttons a {
flex: 1 1 auto;
display: block;
margin: 5px 0;
width: 100%;
}
div.nsl-container-inline {
margin: -5px;
text-align: left;
}
div.nsl-container-inline .nsl-container-buttons {
justify-content: center;
flex-wrap: wrap;
}
div.nsl-container-inline .nsl-container-buttons a {
margin: 5px;
display: inline-block;
}
div.nsl-container-grid .nsl-container-buttons {
flex-flow: row;
align-items: center;
flex-wrap: wrap;
}
div.nsl-container-grid .nsl-container-buttons a {
flex: 1 1 auto;
display: block;
margin: 5px;
max-width: 280px;
width: 100%;
}
@media only screen and (min-width: 650px) {
div.nsl-container-grid .nsl-container-buttons a {
width: auto;
}
}
div.nsl-container .nsl-button {
cursor: pointer;
vertical-align: top;
border-radius: 4px;
}
div.nsl-container .nsl-button-default {
color: #fff;
display: flex;
}
div.nsl-container .nsl-button-icon {
display: inline-block;
}
div.nsl-container .nsl-button-svg-container {
flex: 0 0 auto;
padding: 8px;
display: flex;
align-items: center;
}
div.nsl-container svg {
height: 24px;
width: 24px;
vertical-align: top;
}
div.nsl-container .nsl-button-default div.nsl-button-label-container {
margin: 0 24px 0 12px;
padding: 10px 0;
font-family: Helvetica, Arial, sans-serif;
font-size: 16px;
line-height: 20px;
letter-spacing: .25px;
overflow: hidden;
text-align: center;
text-overflow: clip;
white-space: nowrap;
flex: 1 1 auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-transform: none;
display: inline-block;
}
div.nsl-container .nsl-button-google[data-skin="light"] {
box-shadow: inset 0 0 0 1px #747775;
color: #1f1f1f;
}
div.nsl-container .nsl-button-google[data-skin="dark"] {
box-shadow: inset 0 0 0 1px #8E918F;
color: #E3E3E3;
}
div.nsl-container .nsl-button-google[data-skin="neutral"] {
color: #1F1F1F;
}
div.nsl-container .nsl-button-google div.nsl-button-label-container {
font-family: "Roboto Medium", Roboto, Helvetica, Arial, sans-serif;
}
div.nsl-container .nsl-button-apple .nsl-button-svg-container {
padding: 0 6px;
}
div.nsl-container .nsl-button-apple .nsl-button-svg-container svg {
height: 40px;
width: auto;
}
div.nsl-container .nsl-button-apple[data-skin="light"] {
color: #000;
box-shadow: 0 0 0 1px #000;
}
div.nsl-container .nsl-button-facebook[data-skin="white"] {
color: #000;
box-shadow: inset 0 0 0 1px #000;
}
div.nsl-container .nsl-button-facebook[data-skin="light"] {
color: #1877F2;
box-shadow: inset 0 0 0 1px #1877F2;
}
div.nsl-container .nsl-button-spotify[data-skin="white"] {
color: #191414;
box-shadow: inset 0 0 0 1px #191414;
}
div.nsl-container .nsl-button-apple div.nsl-button-label-container {
font-size: 17px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
div.nsl-container .nsl-button-slack div.nsl-button-label-container {
font-size: 17px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
div.nsl-container .nsl-button-slack[data-skin="light"] {
color: #000000;
box-shadow: inset 0 0 0 1px #DDDDDD;
}
div.nsl-container .nsl-button-tiktok[data-skin="light"] {
color: #161823;
box-shadow: 0 0 0 1px rgba(22, 24, 35, 0.12);
}
div.nsl-container .nsl-button-kakao {
color: rgba(0, 0, 0, 0.85);
}
.nsl-clear {
clear: both;
}
.nsl-container {
clear: both;
}
.nsl-disabled-provider .nsl-button {
filter: grayscale(1);
opacity: 0.8;
}
/*Button align start*/
div.nsl-container-inline[data-align="left"] .nsl-container-buttons {
justify-content: flex-start;
}
div.nsl-container-inline[data-align="center"] .nsl-container-buttons {
justify-content: center;
}
div.nsl-container-inline[data-align="right"] .nsl-container-buttons {
justify-content: flex-end;
}
div.nsl-container-grid[data-align="left"] .nsl-container-buttons {
justify-content: flex-start;
}
div.nsl-container-grid[data-align="center"] .nsl-container-buttons {
justify-content: center;
}
div.nsl-container-grid[data-align="right"] .nsl-container-buttons {
justify-content: flex-end;
}
div.nsl-container-grid[data-align="space-around"] .nsl-container-buttons {
justify-content: space-around;
}
div.nsl-container-grid[data-align="space-between"] .nsl-container-buttons {
justify-content: space-between;
}
/* Button align end*/
/* Redirect */
#nsl-redirect-overlay {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: fixed;
z-index: 1000000;
left: 0;
top: 0;
width: 100%;
height: 100%;
backdrop-filter: blur(1px);
background-color: RGBA(0, 0, 0, .32);;
}
#nsl-redirect-overlay-container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: white;
padding: 30px;
border-radius: 10px;
}
#nsl-redirect-overlay-spinner {
content: '';
display: block;
margin: 20px;
border: 9px solid RGBA(0, 0, 0, .6);
border-top: 9px solid #fff;
border-radius: 50%;
box-shadow: inset 0 0 0 1px RGBA(0, 0, 0, .6), 0 0 0 1px RGBA(0, 0, 0, .6);
width: 40px;
height: 40px;
animation: nsl-loader-spin 2s linear infinite;
}
@keyframes nsl-loader-spin {
0% {
transform: rotate(0deg)
}
to {
transform: rotate(360deg)
}
}
#nsl-redirect-overlay-title {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
font-size: 18px;
font-weight: bold;
color: #3C434A;
}
#nsl-redirect-overlay-text {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
text-align: center;
font-size: 14px;
color: #3C434A;
}
/* Redirect END*/
window._nslDOMReady(function () {
var container = document.getElementById('nsl-custom-login-form-1'),
form = container.closest('form');
if (container && form) {
var clear = document.createElement('div');
clear.classList.add('nsl-clear');
form.insertBefore(clear, form.firstChild);
var separatorToRemove = container.querySelector(".nsl-separator");
if (separatorToRemove) {
separatorToRemove.remove();
}
var separator = document.createElement('div');
separator.classList.add('nsl-separator');
separator.innerHTML = 'OR';
container.appendChild(separator);
}
var innerContainer = container.querySelector(".nsl-container");
if (innerContainer) {
innerContainer.classList.add('nsl-container-embedded-login-layout-above-separator');
innerContainer.style.display = 'block';
}
form.insertBefore(container, form.firstChild);
});
.nsl-clear {
clear: both;
}
#nsl-custom-login-form-1 {
display: block;
}
#nsl-custom-login-form-1 .nsl-container {
display: none;
}
#nsl-custom-login-form-1 .nsl-separator {
display: flex;
flex-basis: 100%;
align-items: center;
color: #72777c;
margin: 20px 0 20px;
font-weight: bold;
}
#nsl-custom-login-form-1 .nsl-separator::before,
#nsl-custom-login-form-1 .nsl-separator::after {
content: "";
flex-grow: 1;
background: #dddddd;
height: 1px;
font-size: 0;
line-height: 0;
margin: 0 8px;
}
#nsl-custom-login-form-1 .nsl-container-embedded-login-layout-above-separator {
clear: both;
}
.login form {
padding-bottom: 20px;
}
我目前正在上法文發音課,課程介面設計清晰,內容編排有條理,老師也非常有耐心地解答問題,整體上讓我感到非常滿意
整理的非常清楚明瞭,課程的舉例和分類大大降低初學者第一次接觸新的語言的陌生感與無助感,非常受用!
課程解說和發音示範都很清晰,老師的回饋非常有幫助,很適合從零開始學法文的同學!期待學完發音課再進階:)
老師教導細心,作業上傳指正不厭其煩
在Duolinguo上打卡到B1后,发现自己法文语音仍然一窍不通,由于英语口语的阴影,我下定决心一定要认真地学好法文发音。在听了很多发音课后,我发现很多中文老师讲得不够道地(或许是怕解释太多反而让学习者更困惑),而外教老师的那套教法又不够接地气,毕竟中文母语者的发音习惯跟法文有很大区别。于是我继续在茫茫大海中搜啊搜,上完鹦鹉螺的试听课后我知道就是这了,毫不犹豫立刻下单。法文语音无疑是枯燥的,可是听Emily讲课真的就是一种享受,还可以学到一些有趣的法文小知识,明明听上去很难的一个单词,听着她一个音节一个音节地分解你立刻就有了头绪。而Florian的发音又可以让你知道真正的法国人是如何发音的。我特别特别喜欢听Emily的功课讲解部分,也常常(偷)听她给其他同学的讲评,就会发现一些常常被自己忽略的问题,所以每次录音功课我都会练习很多很多遍(今天录一段2分钟的”小王子“花了3个多小时LOL),是什么让我对学习法文语音这么有激情呢?我想,上完Emily的课你就知道答案啦~再次感谢鹦鹉螺,期待后续能有更多的课程。
很棒喔⋯⋯我是法文零基礎,通過課程講解,短短幾週時間大概就可以抓到法文發音的基礎要領
非常實用且教學完整! 老師很用心回覆每一次的練習作業,收穫非常大~