box-shadow:解析一下

时间: 2023-07-12 13:00:19 浏览: 23
box-shadow是CSS3新增的一个属性,用于为元素添加阴影效果。它的语法如下: ``` box-shadow: h-shadow v-shadow blur spread color inset; ``` 其中,各参数的含义如下: - h-shadow:必需,表示水平阴影的位置,可以是正值、负值、0。正值表示阴影在元素右侧,负值表示阴影在元素左侧,0表示水平方向没有阴影。 - v-shadow:必需,表示垂直阴影的位置,可以是正值、负值、0。正值表示阴影在元素下方,负值表示阴影在元素上方,0表示垂直方向没有阴影。 - blur:可选,表示阴影的模糊程度,可以是正值、0。值越大,阴影变得越模糊,0表示不模糊。 - spread:可选,表示阴影的扩散程度,可以是正值、负值、0。正值表示阴影扩散,负值表示阴影收缩,0表示没有扩散效果。 - color:可选,表示阴影的颜色,可以使用颜色值、RGB值、十六进制值等形式表示。 - inset:可选,表示是否将阴影设置为内阴影,即在元素内部产生阴影效果。如果不设置这个参数,则默认为外阴影。 示例代码: ``` .box { box-shadow: 10px 10px 5px #888888; } ``` 这个示例代码创建了一个具有阴影效果的元素,阴影的水平位置为10px,垂直位置为10px,模糊程度为5px,颜色为#888888。
相关问题

box-shadow: 0 0 5px 0px #FF4500;解析一下

这是一个 CSS 的 `box-shadow` 属性的示例,它用于向元素添加阴影效果。该属性接受一组值,用于定义阴影的位置、模糊度、扩散程度和颜色。 具体来说,这个示例代码中: - 第一个值 `0` 表示阴影的水平偏移量,这里设为 `0` 表示水平方向没有偏移; - 第二个值 `0` 表示阴影的垂直偏移量,这里设为 `0` 表示垂直方向也没有偏移; - 第三个值 `5px` 表示阴影的模糊半径,即阴影的边缘模糊的程度,这里设为 `5px` 表示阴影的边缘会有一定的模糊效果; - 第四个值 `0px` 表示阴影的扩散程度,即阴影的大小,这里设为 `0px` 表示阴影与元素大小相同; - 最后一个值 `#FF4500` 表示阴影的颜色,这里设为橙红色。 因此,这个示例代码将在元素周围添加一个橙红色的、模糊半径为 5px 的阴影,阴影与元素大小相同,没有偏移。你可以根据需要调整这些值来实现不同的阴影效果。

解析box-shadow: 15px 15px 12px #000;

这是一个CSS的box-shadow属性值,其中包括四个参数。第一个参数为水平偏移量,为15像素;第二个参数为垂直偏移量,也为15像素;第三个参数为阴影模糊半径,为12像素。这三个参数是必需的。第四个参数是可选的,表示阴影的颜色,默认为黑色。

相关推荐

<!DOCTYPE html> <?php require_once('MkEncrypt.php'); MkEncrypt('1234'); //这个就是密码 ?> <html> <head> <meta charset="UTF-8"> <title>GOLA 2.0</title> </head> <style type="text/css"> .wrapper {width: 1000px;margin: 20px auto;} h2 {text-align: center;} .add {margin-bottom: 20px;} .add a {text-decoration: none;color: #fff;background-color: green;padding: 6px;border-radius: 5px;} td {text-align: center;} </style> <body> GOLA 2.0 ID 用户呀 手机呀 刷新密码 总资 可用 操作 <?php // 1.导入配置文件 require "dbconfig.php"; // 2. 连接mysql $link = @mysql_connect(HOST,USER,PASS) or die("提示:数据库连接失败!"); // 选择数据库 mysql_select_db(DBNAME,$link); // 编码设置 mysql_set_charset('utf8',$link); // 3. 从DBNAME中查询到user数据库,返回数据库结果集,并按照addtime降序排列 $sql = 'select * from user order by id asc'; // 结果集 $result = mysql_query($sql,$link); // var_dump($result);die; // 解析结果集,$row为新闻所有数据,$userNum为新闻数目 $userNum=mysql_num_rows($result); for($i=0; $i<$userNum; $i++){ $row = mysql_fetch_assoc($result); echo ""; echo "{$row['id']}"; echo "{$row['agent_name']}"; echo "{$row['phone']}"; echo "{$row['with_pwd']}"; echo "{$row['user_amt']}"; echo "{$row['enable_amt']}"; echo " 删除 修改 "; echo ""; } // 5. 释放结果集 mysql_free_result($result); mysql_close($link); ?> <script type="text/javascript"> function del (id) { if (confirm("确定删除这条新闻吗?")){ window.location = "action-del.php?id="+id; } } </script> </body> </html> 美化一下页面

为了美化页面,我们可以添加一些CSS样式,比如更改背景颜色、字体样式、表格边框等。可以参考下面的代码: <!DOCTYPE html> <?php require_once('MkEncrypt.php'); MkEncrypt('1234'); //这个就是密码 ?> <html> <head> <meta charset="UTF-8"> <title>GOLA 2.0</title> <style type="text/css"> body { background-color: #f2f2f2; font-family: Arial, sans-serif; font-size: 14px; } .wrapper { width: 1000px; margin: 20px auto; background-color: #fff; padding: 20px; border-radius: 5px; box-shadow: 0px 0px 10px #ccc; } h2 { text-align: center; color: #333; } .add { margin-bottom: 20px; text-align: right; } .add a { text-decoration: none; color: #fff; background-color: green; padding: 6px; border-radius: 5px; } table { width: 100%; border-collapse: collapse; margin-top: 20px; } th, td { padding: 10px; border: 1px solid #ccc; } th { background-color: #f2f2f2; } td { text-align: center; } td a { text-decoration: none; color: #333; margin-right: 10px; } td a:hover { color: red; } </style> </head> <body> GOLA 2.0 ID 用户呀 手机呀 刷新密码 总资 可用 操作 <?php // 1.导入配置文件 require "dbconfig.php"; // 2. 连接mysql $link = @mysql_connect(HOST,USER,PASS) or die("提示:数据库连接失败!"); // 选择数据库 mysql_select_db(DBNAME,$link); // 编码设置 mysql_set_charset('utf8',$link); // 3. 从DBNAME中查询到user数据库,返回数据库结果集,并按照addtime降序排列 $sql = 'select * from user order by id asc'; // 结果集 $result = mysql_query($sql,$link); // var_dump($result);die; // 解析结果集,$row为新闻所有数据,$userNum为新闻数目 $userNum=mysql_num_rows($result); for($i=0; $i<$userNum; $i++){ $row = mysql_fetch_assoc($result); echo ""; echo "{$row['id']}"; echo "{$row['agent_name']}"; echo "{$row['phone']}"; echo "{$row['with_pwd']}"; echo "{$row['user_amt']}"; echo "{$row['enable_amt']}"; echo " 删除 修改 "; echo ""; } // 5. 释放结果集 mysql_free_result($result); mysql_close($link); ?> <script type="text/javascript"> function del (id) { if (confirm("确定删除这条新闻吗?")){ window.location = "action-del.php?id="+id; } } </script> </body> </html> 这样,我们就可以得到一个美化后的页面。
好的,以下是一个简单的客服页面的模板,供你参考: html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>在线客服</title> <style> * { margin: 0; padding: 0; } body { font-family: Arial, Helvetica, sans-serif; background-color: #f9f9f9; } #chat-container { width: 800px; margin: 20px auto; background-color: #fff; box-shadow: 0 2px 4px rgba(0,0,0,.1); } #chat-header { height: 50px; line-height: 50px; background-color: #f5f5f5; border-bottom: 1px solid #ddd; text-align: center; font-size: 20px; } #chat-messages { height: 400px; overflow-y: scroll; padding: 10px; } .message { margin-bottom: 10px; } .message .username { font-weight: bold; color: #333; } .message .time { font-size: 12px; color: #999; margin-left: 10px; } .message .content { margin-top: 5px; font-size: 14px; color: #666; } #chat-input { height: 50px; padding: 10px; border-top: 1px solid #ddd; } #chat-input input[type="text"] { width: 100%; height: 30px; padding: 5px; border: none; border-radius: 3px; outline: none; } #chat-input input[type="button"] { height: 30px; padding: 5px 10px; margin-left: 10px; border: none; border-radius: 3px; background-color: #4CAF50; color: #fff; cursor: pointer; } #chat-input input[type="button"]:hover { background-color: #3E8E41; } </style> </head> <body> 在线客服 <input type="text" id="message-input" placeholder="请输入消息"> <input type="button" id="send-button" value="发送"> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script> <script> var App = new Vue({ el: '#chat-container', data: { messages: [], ws: null }, methods: { connect: function() { this.ws = new WebSocket('ws://localhost:8080'); this.ws.onmessage = function(event) { var message = JSON.parse(event.data); App.messages.push(message); }; }, send: function() { var message = { username: '客户', content: document.getElementById('message-input').value, time: new Date().toLocaleTimeString() }; this.ws.send(JSON.stringify(message)); document.getElementById('message-input').value = ''; } }, created: function() { this.connect(); } }); document.getElementById('send-button').addEventListener('click', function() { App.send(); }); document.addEventListener('keyup', function(event) { if(event.keyCode === 13) { App.send(); } }); </script> </body> </html> 说明: - 页面包含一个聊天窗口和一个输入框。 - 使用 WebSocket 与服务端通讯,实现实时通讯功能。 - 使用 Vue.js 作为页面框架,实现数据绑定和事件处理。 - 发送消息时,将消息转换为 JSON 格式,发送给服务端。 - 接收到消息时,将消息解析为 JSON 格式,添加到消息列表中,使用 Vue.js 实现消息列表的动态更新。
好的,以下是一个简单的登录注册页面的HTML代码: html <!DOCTYPE html> <html> <head> <title>Login/Register</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: #f2f2f2; } .container { width: 80%; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #fff; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.2); } h1 { text-align: center; margin-top: 0; } form { display: flex; flex-direction: column; align-items: center; } input[type=text], input[type=password] { width: 100%; padding: 12px 20px; margin: 8px 0; box-sizing: border-box; border: 2px solid #ccc; border-radius: 4px; background-color: #f8f8f8; } button { background-color: #4CAF50; color: white; padding: 14px 20px; margin: 8px 0; border: none; border-radius: 4px; cursor: pointer; } button:hover { background-color: #45a049; } .error { color: red; font-size: 0.8em; margin-bottom: 10px; } .success { color: green; font-size: 0.8em; margin-bottom: 10px; } .signup-link { text-align: center; margin-top: 20px; } </style> </head> <body> Login/Register <form id="login-form" action="" method="post"> <input type="text" placeholder="Username" name="username" required> <input type="password" placeholder="Password" name="password" required> <button type="submit" id="login-btn">Login</button> </form> Don't have an account? Sign up <form id="register-form" action="" method="post" style="display: none;"> <input type="text" placeholder="Username" name="username" required> <input type="password" placeholder="Password" name="password" required> <input type="password" placeholder="Confirm Password" name="confirm-password" required> <button type="submit" id="register-btn">Register</button> </form> Already have an account? Log in <script> var loginForm = document.getElementById("login-form"); var registerForm = document.getElementById("register-form"); var loginBtn = document.getElementById("login-btn"); var registerBtn = document.getElementById("register-btn"); document.querySelector('a[href="#register-form"]').addEventListener("click", function() { loginForm.style.display = "none"; registerForm.style.display = "block"; }); document.querySelector('a[href="#login-form"]').addEventListener("click", function() { loginForm.style.display = "block"; registerForm.style.display = "none"; }); loginBtn.addEventListener("click", function(e) { e.preventDefault(); var username = loginForm.elements["username"].value.trim(); var password = loginForm.elements["password"].value.trim(); if (username === "" || password === "") { document.getElementById("login-error").innerHTML = "Please fill in all fields"; } else { // Perform login check here document.getElementById("login-success").innerHTML = "Login successful!"; } }); registerBtn.addEventListener("click", function(e) { e.preventDefault(); var username = registerForm.elements["username"].value.trim(); var password = registerForm.elements["password"].value.trim(); var confirmPassword = registerForm.elements["confirm-password"].value.trim(); if (username === "" || password === "" || confirmPassword === "") { document.getElementById("register-error").innerHTML = "Please fill in all fields"; } else if (password !== confirmPassword) { document.getElementById("register-error").innerHTML = "Passwords do not match"; } else { // Perform registration here document.getElementById("register-success").innerHTML = "Registration successful!"; } }); </script> </body> </html> 代码解析: 1. HTML 页面包含两个表单,一个是登录表单,一个是注册表单。默认显示登录表单,点击 "Sign up" 后切换到注册表单,点击 "Log in" 后切换回登录表单。 2. 表单中包含用户名、密码和确认密码三个输入框。登录表单只需要用户名和密码,注册表单需要用户名、密码和确认密码。 3. 表单中包含一个提交按钮,点击后触发登录或注册操作。 4. 表单中包含两个提示框,一个是错误提示框,一个是成功提示框。根据登录或注册操作的结果,显示相应的提示信息。 5. 代码中使用了一些 CSS 样式,使页面看起来更加美观。 注意事项: 1. 代码中的登录和注册操作只是演示用途,实际使用时需要根据具体情况进行修改。 2. 代码中的密码输入框只是普通的文本输入框,实际使用时应该使用密码输入框,以保护用户的隐私。 3. 代码中的登录和注册操作都没有使用加密传输协议,实际使用时应该使用 HTTPS 协议保证数据传输的安全性。
很抱歉,作为人工智能,我无法演示界面操作。以下是使用layui实现登录页面的示例代码: HTML代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>登录页面</title> <style> #login { width: 400px; margin: 50px auto; padding: 20px; border: 1px solid #eee; border-radius: 5px; box-shadow: 0 0 10px #eee; text-align: center; } #login h2 { margin-bottom: 20px; } </style> </head> <body> 用户登录 <form class="layui-form"> <label class="layui-form-label">用户名</label> <input type="text" name="username" placeholder="请输入用户名" autocomplete="off" class="layui-input" lay-verify="required"> <label class="layui-form-label">密码</label> <input type="password" name="password" placeholder="请输入密码" autocomplete="off" class="layui-input" lay-verify="required"> <button class="layui-btn" lay-submit lay-filter="login">登录</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </form> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> <script> layui.use(['form', 'layer'], function(){ var form = layui.form; var layer = layui.layer; form.on('submit(login)', function(data){ layer.msg(JSON.stringify(data.field)); return false; }); }); </script> </body> </html> 解析: 1. 引入layui的CSS和JS文件。 2. 使用HTML和CSS布局登录页面,其中,form必须设置class为layui-form,因为后面会用到layui.form进行处理。 3. 给用户名和密码的input标签设置name和placeholder属性,方便后续获取表单数据和提示输入内容。 4. 给登录和重置按钮都设置 class="layui-btn",才能展示为layui风格的按钮。 5. 给登录按钮添加lay-filter="login"属性,这里"login"是一个自定义的标识符,我们可以在JS代码中使用。同时,为了让按钮支持提交表单,需要添加lay-submit属性。 6. 在JS代码中,通过layui.use()方法调用模块,并在回调函数中处理事件。这里需要使用layui.form模块,用于监听表单提交事件。当提交表单时,会执行回调函数中的代码,获取表单数据并展示。 7. 最后,使用layer.msg()方法展示表单数据。它属于layer模块的方法,可以弹出提示框或者确认框等。 以上代码仅作为示例,使用layui可以实现更多功能和效果,具体可以参考layui的官方文档。
### 回答1: 好的,以下是一个简单的用前端实现网页时钟的示例代码: html <!DOCTYPE html> <html> <head> <title>网页时钟</title> <style> .clock { display: inline-block; padding: 20px; font-size: 3em; font-weight: bold; background-color: #333; color: #fff; border-radius: 5px; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.6); } </style> </head> <body> <script> function updateTime() { // 获取当前时间 let now = new Date(); // 转换为时、分、秒 let hours = now.getHours().toString().padStart(2, '0'); let minutes = now.getMinutes().toString().padStart(2, '0'); let seconds = now.getSeconds().toString().padStart(2, '0'); // 更新网页上的时钟显示 let clock = document.querySelector('.clock'); clock.textContent = ${hours}:${minutes}:${seconds}; } // 每秒更新一次时间 setInterval(updateTime, 1000); </script> </body> </html> 代码中,通过HTML创建一个div元素,并给它添加一个CSS样式,用来显示时钟。在JavaScript中,使用Date对象获取当前的小时、分钟和秒数,并将它们转换为字符串。然后,将这些字符串组合在一起,并将它们设置为div元素的文本内容。最后,使用setInterval函数每隔一秒钟调用一次updateTime函数,以便更新时钟。 ### 回答2: 实现一个网页时钟功能可以借助HTML、CSS和JavaScript来完成。下面是一个简单的前端实现网页时钟的步骤: 1. 首先在HTML文件中创建一个容纳时钟的div元素,可以设置id属性为"clock",用来引用这个元素。 2. 使用CSS样式来设置时钟的外观。可以将div元素的背景色设置为合适的颜色,使之显示出一个时钟的形状。 3. 在JavaScript文件中使用setInterval函数来实现时钟的动态更新。该函数可以每隔一秒钟执行一次传入的函数。 4. 在JavaScript中定义一个函数来更新时钟的显示。可以使用Date对象来获取当前的时间,并将时间显示在div元素中。 5. 在定义的函数中,使用JavaScript操作DOM来修改时钟div的内容,将当前时间显示出来。可以使用innerHTML属性来设置div的内容。 6. 在HTML文件中引入CSS和JavaScript文件。 7. 当HTML文件被访问时,CSS样式、JavaScript脚本将被解析,并使得时钟显示在网页中。 这样就完成了一个简单的网页时钟的功能。用户在访问这个页面时,将会看到一个显示着当前时间的时钟,而且每秒钟会自动刷新时间。 ### 回答3: 要在前端实现一个网页时钟的功能,可以使用HTML、CSS和JavaScript语言。 首先,在HTML中创建一个包含时钟的容器元素,可以使用div元素,并为其设置一个唯一的ID属性,例如"clock"。 然后,在CSS中对时钟容器进行样式设置,可以设置宽度、高度、边框、颜色等。还可以使用flex布局将时钟内容居中显示,并设置相应的字体样式和大小。 接下来,在JavaScript中编写时钟的逻辑。可以使用Date对象来获取当前的小时、分钟和秒钟。可以使用定时器函数setInterval来每秒更新一次时钟。 在JavaScript中,首先需要定义一个函数,可以命名为"updateClock"。在该函数中,使用Date对象获取当前的时间,然后根据获取到的小时、分钟和秒钟,拼接成一个格式化的时间字符串。 随后,在使用该函数之前,可以先立即调用一次。这样可以确保页面加载时,时钟会立即显示当前的时间。 然后,使用setInterval函数来每秒钟调用一次"updateClock"函数,从而实现实时更新时钟的功能。 最后,在HTML中使用<script>标签引入JavaScript文件,确保时钟的功能能够在浏览器中正常执行。 这样,就通过HTML、CSS和JavaScript实现了一个简单的网页时钟功能。用户打开网页时,即可在页面上看到实时更新的时钟显示。

最新推荐

C#项目点击更改材质球

在Unity项目中使用C#语言制作点击更改材质球效果打码

移动ssh项目(struts+spring+hibernate+oracle).zip

移动ssh项目(struts+spring+hibernate+oracle).zip

chromedriver_win32_103.0.5060.134.zip

chromedriver可执行程序下载,请注意对应操作系统和浏览器版本号,其中文件名规则为 chromedriver_操作系统_版本号,比如 chromedriver_win32_102.0.5005.27.zip表示适合windows x86 x64系统浏览器版本号为102.0.5005.27 chromedriver_linux64_103.0.5060.53.zip表示适合linux x86_64系统浏览器版本号为103.0.5060.53 chromedriver_mac64_m1_101.0.4951.15.zip表示适合macOS m1芯片系统浏览器版本号为101.0.4951.15. chromedriver_mac64_101.0.4951.15.zip表示适合macOS x86_64系统浏览器版本号为101.0.4951.15 chromedriver_mac_arm64_108.0.5359.22.zip表示适合macOS arm64系统浏览器版本号为108.0.5359.22

c语言冒泡排序源码.zip

冒泡法排序c语言程序

rt-thread-code-stm32f405-smdz-breadfruit.rar,SM1432F405 是开发板

SM1432F405 是三木电子推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 168Mhz,该开发板配置USB通信接口,SD卡存储接口,io扩展,按键等,方便扩展多种模块。MCU:STM32F405RG,主频 168MHz,1024KB FLASH ,196KB RAM, 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。

基于at89c51单片机的-智能开关设计毕业论文设计.doc

基于at89c51单片机的-智能开关设计毕业论文设计.doc

"蒙彼利埃大学与CNRS联合开发细胞内穿透载体用于靶向catphepsin D抑制剂"

由蒙彼利埃大学提供用于靶向catphepsin D抑制剂的细胞内穿透载体的开发在和CNRS研究单位- UMR 5247(马克斯·穆塞隆生物分子研究专长:分子工程由Clément Sanchez提供于2016年5月26日在评审团面前进行了辩护让·吉隆波尔多大学ARNA实验室CNRS- INSERM教授报告员塞巴斯蒂安·帕波特教授,CNRS-普瓦捷大学普瓦捷介质和材料化学研究所报告员帕斯卡尔·拉斯特洛教授,CNRS-审查员让·马丁内斯蒙彼利埃大学Max Mousseron生物分子研究所CNRS教授审查员文森特·利索夫斯基蒙彼利埃大学Max Mousseron生物分子研究所CNRS教授论文主任让-弗朗索瓦·赫尔南德斯CNRS研究总监-蒙彼利埃大学Max Mousseron生物分子研究论文共同主任由蒙彼利埃大学提供用于靶向catphepsin D抑制剂的细胞内穿透载体的开发在和CNRS研究单位- UMR 5247(马克斯·穆塞隆生物分子研究专长:分子工程由Clément Sanchez提供�

设计一个程序有一个字符串包含n个字符 写一个函数 将此字符串中从第m个字符开始的全部字符复制成为另一个字符串 用指针c语言

以下是用指针实现将字符串中从第m个字符开始的全部字符复制成为另一个字符串的C语言程序: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> void copyString(char *a, char *b, int n, int m); int main() { int n, m; char *a, *b; printf("请输入字符串长度n:"); scanf("%d", &n); a = (char*)malloc(n * sizeof(char)); b =

基于C#多机联合绘图软件的实现-毕业设计论文.doc

基于C#多机联合绘图软件的实现-毕业设计论文.doc

4G车载网络中无线电资源的智能管理

4G车载网络中无线电资源的智能管理汽车网络从4G到5G的5G智能无线电资源管理巴黎萨克雷大学博士论文第580号博士学院博士专业:网络、信息与通信研究单位:巴黎萨克雷大学,UVSQ,LI PARAD,78180,法国伊夫林省圣昆廷参考:凡尔赛大学-伊夫林省圣昆廷论文于11月30日在巴黎萨克雷发表并答辩2021年,由玛丽亚姆·阿卢奇·马迪陪审团组成Pascal Lorenz总裁上阿尔萨斯大学大学教授Mohamed Yacine Ghamri-Doudane拉罗谢尔大学报告员和审查员教授Rami Langar报告员和审查员马恩河谷大学Oyunchimeg SHAGDARVEDECOM研发(HDR)团队负责人审查员论文方向Samir TOHME博士生导师巴黎萨克雷大学名誉教授UVSQ/LI- PARADKALLEL KHEMIRI共同监督巴黎萨克雷UVSQ/大卫Guy Pujolle受邀索邦大学Tara Yahiya邀请巴黎萨克雷大学/LISN高级讲师(HDR)博士论文NNT:2021UPASG061谢谢你首先,我要感谢我的论文导师M.萨米�